"T"를 인쇄하는 응용 프로그램에서 "rogue"OutputDebugString 호출을했습니다. 다만 찾을 수는 없습니다.Delphi에서 OutputDebugString 호출 디버깅
어떻게 든 OutputDebugString -function에 중단 점을 설정하고 호출 위치를 볼 수 있습니까?
델파이 2009 년
"T"를 인쇄하는 응용 프로그램에서 "rogue"OutputDebugString 호출을했습니다. 다만 찾을 수는 없습니다.Delphi에서 OutputDebugString 호출 디버깅
어떻게 든 OutputDebugString -function에 중단 점을 설정하고 호출 위치를 볼 수 있습니까?
델파이 2009 년
프로젝트에 얼마나 많은 통화 OutputDebugString
에있다을 사용하고 있습니다? "파일에서 찾기"대화 상자를 사용하여 모두 찾을 수 있습니다. 너무 많지 않은 경우 문제가 없어야합니다.
그렇지 않으면 물론 검색을 사용하여 OutputDebugString(
을 모두 raise Exception.Create(
으로 바꿀 수 있습니다.
또한 프로젝트에 다른 모든 장치에서 사용하는 단위로 기능
procedure OutputDebugString(const Str: string);
begin
raise Exception.Create(Str);
end;
을 작성할 수 있습니다. uses
목록에 Windows.pas
뒤에이 새 장치 만 선언 된 경우이 새 기능은 Windows.pas 대신 사용됩니다.
예. Windows.pas에 중단 점을 배치 할 수 있습니다. 첫째, 프로젝트에서 프로젝트 옵션으로 이동하고 디버깅에서 "디버그 DCU 사용"을 선택하십시오. 그럼 당신은 Windows.pas에 가서 라인 30769에 중단 점을 배치 할 수 있습니다 :
procedure OutputDebugString; external kernel32 name 'OutputDebugStringW';
완료.
이제 응용 프로그램에서 OutputDebugString을 호출하면 중단 점에서 중단됩니다. 중단 점 속성에서 로깅을 활성화하여 호출 스택을 기록 할 수도 있습니다.
프로젝트 및 구성 요소에 너무 많은 스프레드가 있습니다. 메시지가 제 3 자 코드에서 온 것인지 확실하지 않습니다. – Harriv
예, 디버그 DCU가 수행합니다. 이제 조건을 설정하는 방법을 알아야합니다. – Harriv
코드가 아니라면 (간접적으로) 사용하는 일부 유닛도 OutputDebugStringA로 이동할 수 있습니다. – Remko