ASP 페이지에서 생성 된 Visual Studio 6.0에서 COM 객체를 디버그하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/370250

  •  21-08-2019
  •  | 
  •  

문제

Visual Studio 6.0 형식으로 유지 해야하는 오래된 C ++ COM 구성 요소가 있습니다. 나는 실제 COM 구성 요소에서 코드를 디버깅하는 방법을 알아낼 수 없습니다.

디버그 모드로 빌드하고 브레이크 포인트를 추가하여 dllhost.exe 프로세스에 첨부 할 수 있지만 Visual Studio 환경은 소스 코드가 아닌 dllhost.exe에서 분해를 표시합니다 (또한 중지되지 않습니다. 중단 점에서).

나는 얼마 전에 IIS (또는 inetinfo.exe)를 만들 수있는 방법이 있었음을 기억합니다. 표적 디버그 조치 중 (예 : Visual Studio 6.0이 실행 파일을 요청할 때 DLL을 시작할 때) IIS는 단일 프로세스 모드에서 실행됩니다. 변경해야 할 레지스트리 키가 있었지만 인터넷 검색은 도움이되지 않았습니다.

도움이 되었습니까?

해결책

VB6 기반 COM 구성 요소 인 경우 VB6에서 프로젝트를 열고 실행할 수 있습니다 (DLL 프로젝트를 실행할 수 없습니다). 프로젝트 속성에는 자체를 실행하고 등록 할 수 있도록 실행하도록 요청할 수있는 옵션이 있습니다.

이제 COM 구성 요소를 호출하는 ASP 페이지를 치십시오. 클래스 파일에 설정된 중단 점은 호출이 ASP 페이지에서 작성되므로 적용됩니다.

다른 팁

우선, PDB 파일 (컴파일 중에 생성)은 DLL과 동일한 디렉토리에 있어야합니다 (프로젝트 속성으로 설정할 수 있음).

객체가 일부 ASP- 특이 적 기능 (요청, 응답, 세션 객체)을 사용하지 않으면 호출 코드를 .VBS 파일에 복사하고 설정을 통해 디버그 할 수 있습니다. cscript.exe your.vbs 디버그 대상 프로그램으로.

설명이 있습니다 (예를 들어) ISAPI DLLS를 디버그하는 방법 - COM 개체에도 적용 가능합니다 (OS/Debugger 관점에서 모두 IIS 프로세스에로드 된 DLLS입니다). IIS 버전 및 IN/OUT Process 제품에주의하십시오.

그리고 마지막으로 다른 도움이 없다면 outputdebugstring 기능하고 무료로보십시오 디버그 뷰 프로그램.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top