|
밑에도 올렸지만
아무리해도 해결이 안되서요
도와주세요.ㅠㅠ
access violation 이 오류가 뜨는데
함수안에 함수안에 함수안에 try catch 이런문 써서
어느 함수가 문젠지 로그로 남기게해서 했는데
제딴에서는 로그남긴거보고 이함수에서 걸리는구나해서
고쳤는데 또 그러는거에요
그래서 또 찾아봤는데
now->second.m_pObject->Init();
여기서 걸리길래
now 같은경우 map iterator한거구요
m_pObject 는 객체구 Init()여기서 문제구나해서
Init()함수로 가서 또 try catch 써서 로그남기게해놨어요
그래서 걸리는 함수가 또 세개나있더라구요
그래서 그함수보니까
거긴 select해서 전역변수에 넣는거거든요 예를들어서
아래소스처럼
String strSQL, DataName[STRING_CNT], strMsg, str_info;
TStringList *StringList_TFDT;
int j = 0;
StringList_TFDT = new TStringList;
StringList_TFDT->Clear();
strSQL.sprintf("SELECT T1.TFDT_STAT FD_01 \
FROM VDS_TFDTSTAT T1, VDS_TFDT T2 \
WHERE T1.TFDT_ID = T2.TFDT_ID AND T2.VDS_ID = '%s' \
ORDER BY T2.TFDT_LANE ASC, T2.TFDT_ID ASC", tcdv_info.tcdv_id);
DataName[0] = "FD_01";
DataModule_DB->SelectSQL1(StringList_TFDT, strSQL, DataName, 1);
try
{
if ( StringList_TFDT->Count )
{
for ( int i = 0; i < StringList_TFDT->Count; )
{
tcdv_stat.tfdt_stat[i].tfdt_stat = StringList_TFDT->Strings[i].ToInt();
tcdv_stat.tfdt_stat[i].itfdtstat = 1;
i++;
} // end of for
} // end of if
else
{
for(int i = 0; i < tcdv_stat.tfdt_cnt; i++)
{
tcdv_stat.tfdt_stat[j].tfdt_stat = 1;
tcdv_stat.tfdt_stat[j].itfdtstat = 0;
}
}
}
catch( Exception &e)
{
AnsiString error;
error.sprintf("error : %s, %s",e.Message, tcdv_info.tcdv_id);
AddMsg(error.c_str());
}
//2010.12.02
if(tcdv_stat.tfdt_cnt)
{
for(int i = 0; i < tcdv_stat.tfdt_cnt; i++)
{
if(tcdv_stat.tfdt_stat[i].itfdtstat == 0)
SaveTFDTStat(i);
}
}
delete StringList_TFDT;
이런내용이거든요 근데 여기가문제라면 또 안에 try catch해서 로그남기게했으니까
여기 내용이떠야하는데 뜨지않구 Init()함수 에서 뜨니까..
exception 이 잘 못잡아준다그러는거알긴하는데
어떻게 이걸 찾아야할지모르겠고 소스를봐도 아이래서 문제겠지해서
조취를 취해도 도무지 모르겠더라구요 ㅠㅠ
진짜 저번주부터 계속 잡고있는데
이게 통신이 불안정하거나 이럴때 뜨는데 불안정하는경우가
별로 없잖아요 그리고 항상 새벽에 이렇게 떠서 어떻게해야할지모르는거에요
근데 이게 일어나는 시점이 통신이 끊어졌더라던지 아니면 불안정할때
떴거든요
좀 어떤 문제인지 조언이나 도와주세요.ㅠㅠ
|