2011-01-16 5 views
2

나는 다음과 같은 코드에서 델파이 2010에 JCL을 설치 한JclLastExceptStackListToStrings 빈 문자열 목록을 생성

또한
try 
    raise Exception.Create('Error Message'); 
except 
    on E: Exception do 
    begin 
    ResultStatus := JclLastExceptStackListToStrings(sl, True, True, True, True); 
    end; 
end; 

내가 초기화 섹션에서이 호출이 있습니다

initialization 
    JclStartExceptionTracking; 

ResultStatus이 거짓이고 sl은 비어 있습니다. map 및 .jdbg 파일을 생성하는 옵션을 설정했습니다. ProcByLevel과 같은 다른 기능은 정상적으로 작동합니다. JclLastExceptStackListToStrings를 작동시키기 위해해야 ​​할 일이 있습니까?

최종 수정일 : JclDebug.pas 파일에서

$ 날짜 : 2010-09-07 19시 43분 19초 0200 개정 (월, 2010년 9월 7일..) : $ 레브 : 3331

+0

돌아와서 무슨 일이 있었는지 알려 주시면 좋을 것입니다. –

+0

불행히도 나는 그 이유를 모른다.IDE (IDE 포함)를 다시 설치하고 새 프로젝트를 시작했습니다. 그래서 여러 가지 이유가 있었을 지 모르지만, 정확히 무엇인지 알 수있는 시간이 없었습니다. – Max

+0

XE2를 사용하는 동안 동일한 동작이 발생합니다. 나는 내가 뒤에 1 예외임을 알게됩니다. 두 번째 패스에서 결과를 얻는다는 의미입니다. –

답변

1

시도 응용 프로그램의 매우 시작

JclStartExceptionTracking; 

를 호출.

[편집] 당신은 이미 있습니다. 그럼 나는 현재 제안에서 벗어났다. [/ 편집]

+0

그는 초기화 섹션에서이를 호출합니다. 그가 이전에 전화했는지 나중에 말해 주겠습니까? 더 일찍, 어떻게? –

+0

그는 아직이 답변을 게시했을 때 언급하지 않았습니다. (편집 로그 확인). 혼란을 피하기 위해 내 대답을 업데이트하겠습니다. –

0

I가 사용

JclStackTrackingOptions = [stStack, stExceptFrame, stRawMode, stAllModules을 stStaticModuleList];

0

나는

  • 디버그를 가능하게 트리 노드를 연결 선택
  • 델파이 XE 1.

    1. 개방 프로젝트 옵션 메뉴
    2. 개방 델파이 컴파일러 트리 노드에서이 문제를 해결 정보 체크 박스
  • 0

    나는이 문제로 며칠 동안 고생했습니다. JCL 스택 추적이 내 프로그램에서 작동하고 오류 위치를 정확히 찾아 낼 수있었습니다. 여하튼 그것은 다만 작동을 멈췄다.

    그런 다음 JCL 데모를 사용하여 문제없이 작동하는지 확인했습니다. 그것은 아주 잘 작동했습니다. 나는 모든 프로젝트 옵션을 데모와 동일하게 설정했지만 데모가 매번 작동하는 동안 내 프로그램은 덤프되지 않았습니다.

    갑자기 필자는 프로그램과 데모가 CPU 아키텍처 만 다르다는 것을 알게되었습니다. 데모는 32 비트이고 프로그램은 64 비트입니다.

    JCL 데모를 64 비트로 컴파일하고 작업을 중단했습니다. 32 비트 코드에서만 작동합니다. 64 비트가 아닙니다.

    불행히도 내 프로그램에 6-7 기가 바이트의 메모리가 필요하며 32 비트 모드를 사용할 수 없습니다. Eurekalog는 두 아키텍처에서 모두 작동하므로 사용하는 것이 좋습니다.