2009-07-08 2 views

답변

3

C는 상자 밖으로 반사되는 것을 지원하지 않습니다. 또한 일단 기계어 코드로 컴파일되면 형식이 더 이상 존재하지 않는다는 의미에서 어려운 형식을 사용하지 않습니다 (일부 고급 언어와 달리). 모든 심볼과 디버그 정보로 실행 파일을 빌드 한 다음 디버깅 도구 또는 라이브러리를 사용하여이 데이터를 검색해야합니다.

Visual Studio Debugger와 같은 검증 된 디버거를 사용하면 gdb가 훨씬 간단해질 것입니다.

+0

설명 주셔서 대단히 감사합니다. 비주얼 스튜디오 디버거에 소용돌이를 퍼뜨릴 것 같아요. gdb에 익숙하지 않아서 코드를 좀 더 일찍 디버깅하려 했는데도 성공하지 못했습니다. – freakwincy

2

짧은 대답 : 아니오.

긴 대답 : 프로그램이 컴파일되고 링크 될 때까지 모든 정보가 버려졌습니다. C (및 C++)에는 리플렉션이 없으므로 런타임에이 정보를 복구 할 수 없습니다.

흥미로운 대답 : Windows 사용자이므로 디버그 정보 (예 : PDB 파일) 및 DbgHelp API를 사용하여 다양한 작업을 수행 할 수 있습니다.

+0

설명 해 주셔서 감사합니다. Roger. 제가 실제로 작업하고있는 코드는 RIPE WHOIS 서버의 수정 된 버전입니다. Windows에 있지만 실제로 대부분의 작업은 Linux에서 (SSH를 통해) 수행됩니다. 아마도 소스를 로컬에서 빌드하고 Visual Studio Express에서 디버그 모드로 실행시킬 수 있는지 알아볼 것입니다. – freakwincy

관련 문제