|
방태윤님 좋은 답변 정말로 감사합니다. 일다 말씀하신대로 한번 진행해 보려 합니다.
손 발이 고생을 하더라도 지금 당장이 이길이 최선인것 같네요.
그럼 더운날씨에 건강조심하세요.
방태윤 님이 쓰신 글 :
: 컴파일 에러도 없는데 .. 실행하면 .. 에러는 나는데 어떤 부분에서 나오는지 모르신다는거죠?
:
: 어느 함수에서 나는 에러인지 모르는경우 말이죠,.
:
: 조은 방법이 있겠지만,.. 제가 사용하는 방법을 말씀드리께요..
:
: 일단 아래 함수 하나 만듭니다
:
: void add_debug_log(AnsiString str)
: {
: SYSTEMTIME t;
: GetLocalTime(&t);
:
: AnsiString f_str=AnsiString().sprintf("%02d%02d",t.wHour,t.wMinute);
: AnsiString fname=ExtractFilePath(Application->ExeName)+f_str+"_log.txt";
: FILE*fp=fopen(fname.c_str(),"a+t");
:
: AnsiString tstr;
: tstr.sprintf("%04d.%02d.%02d %02d:%02d:%02d",t.wYear,t.wMonth,t.wDay,t.wHour,t.wMinute,t.wSecond);
: AnsiString temp=tstr+" "+str+"\n";
: fputs(temp.c_str(),fp);
: fclose(fp);
: }
: //---------------------------------------------------------------------------
: 위 함수는 일분마다 새화일을 만들면서 로그를 추가하는 일을 합니다.
:
:
: 그리고 소스의 각 라인 마다
:
: add_debug_log(AnsiString().sprintf("FILE:%s FUNC:%s LINE:%d",__FILE__, __FUNC__, __LINE__));
:
: 아래와 같이 넣습니다.ㅋ
:
: 그리고 돌리다 팅기면..어디까지 진행 됬는지 알수 있겠죠...
:
: 처음엔 함수 호출 전 후에 넣어서 어떤 함수가 이상있는지 찾아낸후,,
:
: 다시 함수 안의 각 라인에 어디서 에러가 나서 멈추는지 찾는거죠,,
:
: 첨에 말씀드렸듯이 무식합니다.
:
: 무식하면 손발이 고생한다는데...어쩜니까 ,,이렇게 라도 해야죠..ㅋ
:
: 제 예를 들어보면 프로그램을 돌리면...한 4,5시간 마다 에러가 납니다,,
:
: 그래서 위의 방법으로 한 일주일 만에 찾았담니다.
:
: 그때 찾은 에러는 우습게도 GetTextMetrics(dc,&tm);
:
: dc 가 이상이 있나 봤더니..
:
: 위에는 TBitmap 의 Handle 이었고 아래는 정상적으로 delete 되 있었지만,
:
: 시간이 지나면 애러를 내더군요,
:
: dc 를 vcl 아닌 api 로 바꾸니까 비로소 에러가 안나더군요,..
:
: 위의 경우는 그런 경우도 있더라는 ... 그냥 참고 하시라고 말씀드리니다.
:
: 암튼 방법이 좀 무식해서..ㅋㅋ
:
: 어떤 프로그램들 보면 에러나면...어디서 호출 됬는지 메세지창으로 나오던데..
:
: 그런거.. 어떻게 하는건지 아시는 분은 좀 알려주심 감사하겠습니다.
:
:
:
:
: 이카로스 님이 쓰신 글 :
: : 프로그램 고수님들에게 자문을 구합니다.
: : 다름이 아니오라 요번에 저희 회사에서 프로잭트 작업을 하면서 C++로 프로그램 작업했습니다.
: : 그런데 작업한 프로그램을 구동중에 간혹 [system error. code : 87. 매개변수가 틀립니다.] 라고 나옵니다.
: : 위 에러 메서지가 여러개가 나오면서 프로그램창에서 튕겨져 나오는데 도무지 알수가 없습니다.
: : 도대체 어디서 잘못이 된건지 알수가 없어서 고수님들에게 자문을 구합니다.
: : 위 문제를 어떤 식으로 해결해야 하는지 알수 있을까요?
: : 꼭좀 도와주세요.
: : 그럼 좋은 답변 기다리고 있겠습니다.
: : 더운 날씨에 건강 조심들 하세요.
|