none
DLL 디버깅 및 윈도우즈 호환성작업 RRS feed

  • 질문

  • 안녕하세요. 현재 소규모 pc게임 개발회사에 다니고있는 개발자입니다.

    다름이 아니라 현재 담당하고있는게임이 vs6.0(WindowsXP) 환경에서 작업을 하고있었습니다. 그러면서 최신 OS(win8~win10)에서는 자주 튕김현상이 발생한다고 보고가 되어

    마이그레이션을 진행하게 되었습니다. 먼저 visual studio 2008로 작업 버전과 환경 os를 windows7으로 올리고 관련된 문법오류를 수정하면서 진행을 하고있었습니다.

    현재 프로그램 동작 방식은 exe가 게임 DLL을 읽어서 실행하는 방식으로 동작하고있습니다. 

    근데 오히려 팅김현상은 더 심해지는 테스트 결과가 발생해서 디버깅을 시도 할려고하나 소스코드와 미니덤프를 DLL에 추가했음에도 불구하고 덤프는 발생하지 않고. 어찌저찌해서 프로세스 연결을 통해 강제 디버깅을 시도해봤지만 exe쪽 코드나 dll쪽 코드에 대해 함수만 대략적으로 가르쳐줄뿐 정확하게 어떤라인인지, 어디서 터지는지에 대해 디버깅이 불가능했습니다.

    그부분에 관해서 DLL이 디버깅이 안되나에 대해 궁금합니다.

    그리고 소위 말하는 최신 윈도우즈와의 호환성 패치작업에 대해서 진행 순서가 궁금합니다. 따로 사용하는 툴이있는건가요? 아니면 MS에 전문가와 돈을 주고 상담을 해서 고쳐야하는건가요???

    모호한 질문이라서 죄송합니다. 

    2017년 7월 10일 월요일 오전 8:44

답변

  • DLL project가 있다면 디버깅은 가능할 것으로 보입니다. https://msdn.microsoft.com/en-us/library/ms164704(v=vs.90).aspx 참고하세요.

    To debug a DLL, start by debugging the calling application, typically either an EXE or a Web application. There are several ways to debug it.

    • If you have a project for the calling application, you can open that project and start execution from the Debug menu. For more information, see How to: Start Execution.

    • If the calling application is an existing program already deployed on a test or production computer and is already running you can attach to it. Use this method if the DLL is a control hosted by Internet Explorer, or a control on a Web page. For more information, see How to: Attach to a Running Process.

    • You can debug it from the DLL project. For more information, see How to: Debug from a DLL Project.

    • You can debug it from the Visual Studio Immediate window. In this case, the Immediate window plays the role of the application.

    Before you start debugging the calling application, you will usually want to set a breakpoint in the class library. For more information, see Breakpoints and Tracepoints. When the breakpoint is hit, you can step through the code, observing the action at each line, until you isolate the problem.

    2017년 7월 18일 화요일 오전 2:16