윈도우 내부의 System Call 단계 까지 보려면 윈도우용 커널디버거를 쓰시거나,
SoftIce 를 사용하셔야 할껍니다. 사실 윈도우는 많은 부분을 DLL 형식으로
API를 제공하고( 이게 시스템 콜이라고 보면 되겠네요) 그 DLL 이 내부의 숨겨진
SystemCall 을 호출하는 방식으로 동작하게 됩니다.
특정 DLL 의 내부 함수나, 어떠한 프로그램이 사용하는 시스템콜의 목록을 보시려면 VC6 이상을 깔면 제공되는 툴인 Dependency Walker 라는
프로그램을 이용하시면 됩니다.
음. 답변 감사합니다.
그런데 제가 알고 싶은건 프로그램이 정상종료하지 않고 계속 돌고있어서 어떤 상태인지 어떤 system call이 호출되고 있는지 확인하고 싶은데.. 그런 식으로 접근하는 거 아닌가보죠.. 쩝..
win프로그램 할려니 thread들이 정리가 않되서 종료않되고 계속 살아있는지 쩝..
윈도우 내부의 System Call 단계 까지 보려면 윈도우용 커널디버거
윈도우 내부의 System Call 단계 까지 보려면 윈도우용 커널디버거를 쓰시거나,
SoftIce 를 사용하셔야 할껍니다. 사실 윈도우는 많은 부분을 DLL 형식으로
API를 제공하고( 이게 시스템 콜이라고 보면 되겠네요) 그 DLL 이 내부의 숨겨진
SystemCall 을 호출하는 방식으로 동작하게 됩니다.
특정 DLL 의 내부 함수나, 어떠한 프로그램이 사용하는 시스템콜의 목록을 보시려면 VC6 이상을 깔면 제공되는 툴인 Dependency Walker 라는
프로그램을 이용하시면 됩니다.
^^ be cool ~
http://fromdj.pe.kr
음.. 답변 감사합니다.
음. 답변 감사합니다.
그런데 제가 알고 싶은건 프로그램이 정상종료하지 않고 계속 돌고있어서 어떤 상태인지 어떤 system call이 호출되고 있는지 확인하고 싶은데.. 그런 식으로 접근하는 거 아닌가보죠.. 쩝..
win프로그램 할려니 thread들이 정리가 않되서 종료않되고 계속 살아있는지 쩝..
Perl 만세~~~
무료는 아니지만 이런것도 있죠.http://www.sstinc.com
무료는 아니지만 이런것도 있죠.
http://www.sstinc.com/windows.html
--
익스펙토 페트로눔
음 그렇군요. 감사합니다.
음 그렇군요. 감사합니다.
여담이긴 하지만 core파일이 않남는데 debug하시는 win개발자분들 정말 존경스럽네요 ^^; 음. 서비스 돌리다가 죽는 경우에 어떻게 디버깅하시는지 쩝..
Perl 만세~~~
core
win32 에선 크래시덤프/미니덤프 라고하는 놈이 지원된다고 들었습니다.
자세히 모르는 내용을 적자니 부끄럽네요 :oops:
혹시 저쪽에 대해 하시는분 있으면 코멘트좀..
userdump.exe(http://support.microsoft.co
userdump.exe(http://support.microsoft.com/default.aspx?scid=kb;en-us;241215)란 놈을 이용하시면 덤프(core) 파일을 얻을 수 있으며, 요 놈을 Visual Studio에서 불러들이면 디버깅이 가능합니다.
또한, 프로그램 내부에서 미니덤프를 할 수도 있습니다. 이에 관해서는 Debugging Applications란 책을 참고하시기 바랍니다.
아직 종료되지 않은 프로세스의 경우 Visual Studio에서 Tools/Debug Processes 메뉴를 선택하여 프로세스를 attach하면 바로 디버깅이 가능합니다.
원격 서버에서 있는 프로세스는 remote debugging을 이용하면 디버깅이 가능하고요. 역시나 위 책을 참고하시기 바랍니다.
댓글 달기