Delphi XE3. 나는 JCL 오류 대화 상자를 사용하고 있는데 FullDebug와 FASTMM 내 응용 프로그램에서 활성화되어 있고 스택 트레이스 (JCL 및 FASTMM 모두)에 기호에 추가 "쓰레기"를 받고 :
[74EA3D67] RaiseException
[0041815D] FastMM4.TFreedObject.VirtualMethodError$qqrv
[0054FEC5] Vcl.Controls.TWinControl.CMInvalidate$qqrr24Winapi.Messages.TMessage
내가 원하는 것을 입니다 :
[74EA3D67] RaiseException
[0041815D] FastMM4.TFreedObject.VirtualMethodError
[0054FEC5] Vcl.Controls.TWinControl.CMInvalidate
[00548735] Vcl.Controls.TControl.WndProc
그러나 만 응용 프로그램이 릴리스에 대해 컴파일 할 때. 디버그를 위해 컴파일 할 때 스택 트레이스는 "clean"입니다. FastMM과 JCL 보고서에서 같은 종류의 "가비지"를보고 있기 때문에 문제가되는 라이브러리 중 하나라고 생각하지 않습니다.
$ qqv는 일정한 것으로 보이고 문자열의 나머지는 실행마다 다르기 때문에 따옴표가있는 "쓰레기"라고 말합니다.
지도 파일과 기호 설정 및 JCL 기호를 확인 (및 재확인)했는데 설정에서 다른 내용을 볼 수 없습니다.
편집 : FASTMM 그래서 모든 문제를 해결 한 문제를 해결 ... (내 생각) 스택 트레이스를 생성하는 JCLDebug를 사용하여 그대로 당연히 근본 원인은 동일합니다.
이'$ qqrv' mangling의 의미는 여전히 문제가 아닙니다. – kludg
Delphi에서 mangling을 설명하는 기사 (독일어 번역본)를 발견했습니다. 예를 들어'qqr'는'register' 호출 규칙을 의미합니다 - http://translate.google.com/translate?prev=hp&hl=en&js=y&u=http%3A//edn.embarcadero.com/article/27758&sl=de&tl=en&history_state0 = – kludg
"잘못"된 점은 stacktrace가 읽기 쉽지 않아서 읽을 수 없다는 것과 스택을 고의적으로 맹 글링하는 것입니다. 페이지 링크를 가져 주셔서 감사합니다. –