2010-06-18 4 views
3

HI :.exe 만 사용하여 디버깅

필자는 수년 전에 필자가 작성한 델파이 7 프로그램을 가지고 있지만 소스 코드를 잃어 버렸습니다. 그것은 작은 프로그램이지만 매우 유용합니다.

새로운 Windows XP 컴퓨터에서 데이터를 다시 설치하려고했지만 (.db paradox 파일). BDE 연결을 구성했습니다.

프로그램이 시작되면 "알 수없는 예외"가 발생하고 중지됩니다. 왜 이런 일이 일어 났는지 모르고, 잃어버린 소스 코드를 디버그 할 수는 없습니다. 나는 같은 결과를 다른 컴퓨터에서 시도했다.

의견이나 제안이 있으십니까? 이런 상황에서 너는 무엇을하니?

미리 감사드립니다.

편집 : 나는 새로운 XP 컴퓨터에서 델파이 7을 설치하면 는 예외 알 수없는에서 알려진왔다. Paradox.net 파일의 폴더와 관련이 있습니다. 너 모두.

답변

7

델파이 IDE는 디버깅 기호 없이도 어셈블러에 대한 지식과 Windows 응용 프로그램 작동 방식을 요구하는 일반 어셈블러 코드의 디버깅을 끝내기는하지만 실행중인 프로세스에 연결하여 디버깅 할 수 있습니다 (실행 -> 연결 처리). 디버거가 프로그램을 시작할 수없는 경우 시작 예외 디버깅이 매우 어려울 수 있습니다. Microsoft의 WinDbg 디버거를 사용할 수도 있습니다. 분석 라이브러리를 인식하는 표준 라이브러리 호출을 인식 할 수있는 디스어셈블러 (매우 강력한 IDA Pro)가 있습니다. 비록 네이티브 응용 프로그램을 디 컴파일하는 것이 p 코드 등을 사용하는 것보다 조금 어렵지만 디 컴파일러를 찾을 수도 있습니다. 오류가 잘못된 구성으로 인한 것이 아닌 경우 이진 파일 패치는 쉽지 않습니다.

6

Visual Studio 또는 무료 OllyDbg 중 하나의 디버거를 사용하여 Delphi IDE에 간단한 외부 exe 디버거가 있는지 알 수 없습니다.

하지만 디버깅은 소스 코드가 없으면 매우 어려울 것이며 최소한 Assembler Language와 win32api에 대한 기본적인 지식을 가지고 있어야합니다.

또는 FileMon & RegMon과 같은 도구를 사용하여 앱 활동을 검사하고 잠재적 인 문제를 찾을 수 있습니다.

+0

이 좋다 - 이상적으로, 당신은 쉽게 외부에서 해결 될 수있는 그런 존재하지 않는 디렉토리, 또는 무언가에 파일을 열려고 볼 것. –

+2

Delphi 디버거는 프로세스로드를 지원합니다. 현재 Delphi 버전에서는 "Run Load Process"메뉴 항목을 사용하십시오. .exe를 지정한 다음로드를 클릭하여 디버거에서로드합니다. 구형 Delphi 버전의 경우 비슷한 기능을 "Run | Parameters"대화 상자에서 사용할 수 있습니다. –

2

Delphi IDE에서 "실행 | 프로세스에 연결 ..."을 시도 할 수 있습니다. 그러나 소스없이 debbugging에 관해서 말한 zed_0xff은 여전히 ​​적용됩니다.

2

나는 당신의 exe가하고있는 것에 대한 (어느 정도) 지식을 가지고 있기 때문에, ldsandon과 같은 접근법을 해체하려고한다. IDA Pro 외에도 IDR (대화 형 델파이 재구성 자), DeDePE Explorer과 같은 델파이 전용 도구를 살펴보십시오.

1

BDE와 관련이 없는지 확인하려면이 컴퓨터에서 동일한 데이터에 액세스하려고하는 또 다른 기본 응용 프로그램을 빌드해야합니다.
이 응용 프로그램이 작동하면 파스칼 코드 측면에서 테스트 할 수 있습니다.
나는 BDE의 기이함을 공유하고 있으므로 이것을 배제하는 것을 선호합니다. Filemon을 /의 Regmon 아이디어

관련 문제