2012-06-11 6 views
1

짧고 간결 :디버깅 (승) : DIA DBGHELP 대

DIA (디버그 인터페이스 액세스) 사이의 실제 차이와 DBGHELP 라이브러리는 무엇입니까? DIA는 COM 기반이며 DBGHELP는 사용하기가 매우 편리하지만 가능성이 적은 반면, DBGHELP는 매우 강력하지만 (관리되는 프로세스와 관리되지 않는 프로세스와 함께 사용할 수있을뿐만 아니라) 강력한 것으로 판단됩니다.

이 둘의 차이점과 차이점을 설명 할 수 있습니까? 난 정말 인터넷 :(일부 전체 결정적인 정보를 찾는 데 어려움을 겪고 있어요

이 무딘 질문 것으로 보인다, 당신은 나를 위해이 모든 답변에 감사합니다! :)

감사 PuerNoctis

경우

죄송합니다

답변

2

DIA에는 일관된 COM 기반 인터페이스가 있습니다. DbgHelp는 일련의 표준 C 함수로 구성됩니다. DIA의 힘을 나타내고 여기

I는 DIA (C++ 샘플)에 대해 기입 한 두 aricles을 :

  1. Symbols File Locator
  2. How to Inspect the Content of a Program Database (PDB) File

수는 DIA 아닌을 사용할 DbgHelp DIA는 모든 COM 인식 프로그램에서 사용할 수 있으므로

+0

링크 주셔서 감사합니다! 재밌는 점은 몇 분 전에 기사를 보았습니다.) 또 다른 질문 : DIA를 사용하여 관리되지 않는 응용 프로그램뿐만 아니라 관리되는 응용 프로그램도 디버깅 할 수 있습니까? – PuerNoctis

+0

당신은 오신 것을 환영합니다! 앞서 언급했듯이 DIA는 비 관리 코드를 의미하는 COM을 기반으로합니다. 물론 관리 응용 프로그램에서 DIA를 사용하기 위해 브리지를 사용할 수 있습니다.관리 코드는 전체 소스 코드를 포함하고 PDB 기호를 사용하지 않기 때문에 관리되는 응용 프로그램을 디버깅하는 데 적합하지 않다고 생각합니다. – mox

+0

오케이. 나는 또한 "CLR Debugging API"를 발견했으며, ICorDebug 인터페이스를 중심으로 관리되는 응용 프로그램을 디버그하기위한 COM 인터페이스도 제공합니다. 지금까지 귀하의 전문 지식에 다시 한번 감사드립니다! 이제 DIA와 DBGHELP의 상관 관계를 알고 있습니다. :) – PuerNoctis

0

같은 것입니다. DbgHelp는 핵심 API이며 C에서 사용할 수 있습니다. DIA는 COM 객체 모델로 사용하기 쉽고 대부분의 언어에서 액세스 할 수 있습니다. 디버그 인터페이스 액세스의 약어로 "액세스"에 중점을 둡니다. 그것에 대한 MSDN 설명서는 starts here입니다.

+0

감사! 언급 할 가치가있는 "주요한"단점이 있습니까? – PuerNoctis

+0

당신은 어떤 문제가 먼저 큰 단점으로 부딪 칠 지 알게 될 것입니다. 나는 그것이 무엇이 될지 짐작할 수 없다. –

+0

좋습니다. 충분히 이해할 수 있습니다. – PuerNoctis