2010-02-20 3 views
1

코드 C C++ 빌더 프로젝트가 있고 예외 발생시 스택 덤프를 얻기 위해 JCL 라이브러리가 추가되었습니다. 나는 stackdump를 얻지 만 가장 중요한 것은 실종 된 행 번호이다. 함수 이름을 얻지 만 함수가 30 행이면 문제가 어디인지 추측하기가 쉽지 않습니다.JEDI 코드 라이브러리 예외 번호

여기에 뭔가가 있습니까?

+0

예, 동일한 경험이 있습니다. 해결하는 것이 좋을 것입니다. –

답변

0

더 자세히 조사해 보면 Delphi 2007을 사용하여 적어도 저에게는 효과적입니다. C++ Builder와 동일한 방식으로 작동한다고 생각합니다.

제 생각에는 디버그 정보를 "디버그 DCU 사용"컴파일러 옵션을 선택하지 않은 것입니다. Delphi examples \ windows \ debug \ stacktrack \ StackTrackDemoMain.pas으로 컴파일 된 JCL에 포함 된 예제를 시도해 보았습니다.

[0047C478]{StackTrackExample.exe} StackTrackDemoMain.TMainForm.Button1Click (Line 49, "StackTrackDemoMain.pas") 
[00442590]{StackTrackExample.exe} Controls.TControl.Click (Line 5229, "Controls.pas") 
[00446083]{StackTrackExample.exe} Controls.TWinControl.WndProc (Line 7304, "Controls.pas") 
[0042ECB8]{StackTrackExample.exe} StdCtrls.TButtonControl.WndProc (Line 3684, "StdCtrls.pas") 
[004461D3]{StackTrackExample.exe} Controls.DoControlMsg (Line 7353, "Controls.pas") 
[00446083]{StackTrackExample.exe} Controls.TWinControl.WndProc (Line 7304, "Controls.pas") 
[004577A3]{StackTrackExample.exe} Forms.TCustomForm.WndProc (Line 3512, "Forms.pas") 
[004457AC]{StackTrackExample.exe} Controls.TWinControl.MainWndProc (Line 7073, "Controls.pas") 
[0041EC14]{StackTrackExample.exe} Classes.StdWndProc (Line 11583, "common\Classes.pas") 
[0044617F]{StackTrackExample.exe} Controls.TWinControl.DefaultHandler (Line 7334, "Controls.pas") 
[00446083]{StackTrackExample.exe} Controls.TWinControl.WndProc (Line 7304, "Controls.pas") 
[0042ECB8]{StackTrackExample.exe} StdCtrls.TButtonControl.WndProc (Line 3684, "StdCtrls.pas") 
[0041EC14]{StackTrackExample.exe} Classes.StdWndProc (Line 11583, "common\Classes.pas") 

참고 :

다음은 출력의 예입니다 내가 TMainForm.ApplicationEventsException

JclLastExceptStackListToStrings(ExceptionLogMemo.Lines, True, False, False, False); 

행운에 파일 StackTrackDemoMain.pas 방법 변경되었습니다!