如何在WinDbg中查看VB6控件级变量?

Joh*_*ohn 8 vb6 com activex windbg

我有一个崩溃文件,我可以看到我自己的一个VB6用户控件负责崩溃; 即它的一个方法是堆栈跟踪的一部分,我可以看到负责的行.

从这里开始,我想检查其成员变量的状态.我该怎么做呢?

注意:我的控件也有私有符号.问题是能够检查"我".命令!对象address_of_Me似乎没有做到这一点,所以我不知所措.

谢谢.

Car*_*com 0

好吧,codeSMART 有一个选项在您的应用程序上安装全局句柄,第一次调用 SetUnhandledExceptionFilter (win api) 应该在加载模块主窗体或关闭程序时安装,因此调用 SetUnhandledExceptionFilter。

代码有点长,所以复制方法名称和 api 调用

Public Sub InstallGlobalHandler()
On Error Resume Next

If Not lnFilterInstalled Then
    Call SetUnhandledExceptionFilter(AddressOf GlobalExceptionHandler)
    lnFilterInstalled = True
End If
End Sub

Public Sub UninstallGlobalExceptionHandler()
On Error Resume Next

If lnFilterInstalled Then
    Call SetUnhandledExceptionFilter(0&)
    lnFilterInstalled = False
End If
End Sub
Run Code Online (Sandbox Code Playgroud)

这里还有模块的 Record Structure y api 声明

- CopyMemory 
- SetUnhandledExceptionFilter
- RaiseException
' Public enums
-EExceptionType
-EExceptionHandlerReturn    
-Private Const EXCEPTION_MAXIMUM_PARAMETERS = 15
' Private record structure
-Private Type CONTEXT      
'Structure that describes an exception.
-Private Type EXCEPTION_RECORD
'Structure that contains exception information that can be used by a debugger.
-Private Type EXCEPTION_DEBUG_INFO
-Private Type EXCEPTION_POINTERS
Run Code Online (Sandbox Code Playgroud)

修改一下如何将 exe 异常路由回 VB6 应用程序?