Delphi7에서 COM+ 디버깅
Liu Xiaoming (Cipher)가 수집 및 편집했습니다.
COM+ 응용 프로그램 시스템을 개발할 때 가장 까다로운 문제는 COM+ 구성 요소를 디버깅하는 방법입니다. COM+는 COM+ 실행 환경에서 실행되기 때문에 Delphi 프로그래머는 Delphi의 분산 다중 계층 응용 프로그램 시스템과 같은 Delphi의 IDE에서 디버깅을 위해 응용 프로그램 서버에 중단점을 직접 설정할 수 없습니다.
실제로 Delphi는 여전히 Delphi의 통합 개발 환경에서 COM+ 구성 요소를 디버깅할 수 있으며, 프로그래머가 통합 개발 환경에서 COM+ 구성 요소의 프로그램 단위에 중단점을 설정한 다음 클라이언트 응용 프로그램을 실행하여 COM+ 구성 요소를 호출할 수 있습니다. 이때 델파이는 델파이의 통합 개발 환경에 실행 제어를 가져오고 프로그래머가 디버깅을 시작할 수 있도록 프로그래머가 설정한 중단점에서 일시 중지됩니다. 이제부터 프로그래머는 일반 응용 프로그램을 디버깅하는 것처럼 COM+ 구성 요소를 디버깅할 수 있습니다. 그러나 이러한 방식으로 COM+ 구성 요소를 디버깅하려면 프로그래머는 먼저 몇 가지 설정을 지정해야 합니다.
1. Delphi의 통합 개발 환경에서 디버깅할 COM+ 구성 요소 프로젝트를 활성화하고, PRojects|Options 메뉴를 클릭하고, 팝업 대화 상자에서 링커 페이지를 선택한 다음, Td32 정보 포함 및 원격 디버그 기호 포함을 선택합니다.
2. Run|Install Com+ Objects 메뉴를 클릭하여 COM+ 구성 요소를 새 응용 프로그램이나 기존 응용 프로그램에 등록하는 것이 좋습니다(이 응용 프로그램은 Delphi의 등록된 COM 프로그램에 의해 생성되어야 함).
3. Win2000 제어판 | 관리 도구 | 구성 요소 서비스를 실행하고 COM+ 응용 프로그램에서 COM 등록 응용 프로그램을 찾은 다음 마우스 오른쪽 버튼을 클릭하고 팝업 대화 상자에서 "고급" 페이지를 선택합니다. 을 클릭하고 "디버거에서 시작" 옵션을 선택하면 아래 디버깅 경로에 다음과 유사한 항목이 있습니다. "C:/Program Files/Borland/Delphi7/Bin/bordbg70.exe" dllhost.exe /프로세스ID:{9CEC476D-83A5-4C2B-AFF1-3E83A147B866}
4. Delphi의 통합 개발 환경으로 돌아가서 Run|Parameters 메뉴를 클릭하고 대화 상자에서 Hostapplication을 C:/WINNT/system32/DLLHOST.EXE(운영 체제 설치 상황에 따라 설정해야 함)로 설정합니다. 매개변수는 /ProcessID:{9CEC476D-83A5-4C2B-AFF1-3E83A147B866}으로 설정됩니다. 이 GUID의 값은 Win2000 구성 요소 서비스의 특성 값과 일치해야 하며 여기에서 직접 복사할 수 있습니다.
5. Delphi의 통합 개발 환경에서 중단점을 설정하고 COM을 실행합니다.
6. Windows(또는 새로 열린 Delphi 환경)에서 이 COM을 호출하는 클라이언트 프로그램을 실행합니다.
이때 Delphi 개발 환경의 COM은 중단점에서 멈추는 것을 볼 수 있으며 단일 단계 추적 및 디버깅을 진행할 수 있습니다.