我可以在 WinDbg 中禁用 "Unable to read dynamic function table entry" 消息吗?
Can I disable the "Unable to read dynamic function table entry" message in WinDbg?
我正在使用一个在运行时生成大量代码的程序,并且似乎不会为其生成任何展开数据。 (我没有这个程序的源代码;我正在为它写一个插件。)
当程序挂起时,我使用 WinDbg 进入程序,并尝试使用 ~* k
获取所有线程的堆栈跟踪。除了堆栈跟踪之外,我还沿着
行获取了页面和页面(以及页面等)消息
Unable to read dynamic function table entry at 00000000`2450b580
这需要很长时间才能打印 - 超过一分钟 - 并且它会溢出滚动缓冲区,所以我丢失了大部分输出。
我现在已经通过对包含此消息的 DLL 进行十六进制编辑来解决这个问题,但是……说真的。是否有官方的方法来删除此消息?
我已经准备好接受来自问题线程的糟糕堆栈跟踪。
如果你是 运行 最新版本的 windbg
您可以尝试设置引擎初始化设置
0:000> dx Debugger.Settings.EngineInitialization.VerifyFunctionTableCallbacks
Debugger.Settings.EngineInitialization.VerifyFunctionTableCallbacks : true
0:000> dx Debugger.Settings.EngineInitialization.VerifyFunctionTableCallbacks = false
Debugger.Settings.EngineInitialization.VerifyFunctionTableCallbacks = false : false
0:000> dx Debugger.Settings.EngineInitialization.VerifyFunctionTableCallbacks
Debugger.Settings.EngineInitialization.VerifyFunctionTableCallbacks : false
请注意,这是一项安全功能,因此禁用它需要您自担风险。有两种选择:
- 如果您知道是哪个模块导致的,您可以将完整路径添加到寄存器:HKLM\Software\Microsoft\Windows NT\CurrentVersion\KnownFunctionTableDlls 注册表项
- 您可以使用
.settings set EngineInitialization.VerifyFunctionTableCallbacks=false
禁用它
第二个选项仅为当前会话禁用它。如果你想让它永久化,你可以在后面加上.settings save
。
我正在使用一个在运行时生成大量代码的程序,并且似乎不会为其生成任何展开数据。 (我没有这个程序的源代码;我正在为它写一个插件。)
当程序挂起时,我使用 WinDbg 进入程序,并尝试使用 ~* k
获取所有线程的堆栈跟踪。除了堆栈跟踪之外,我还沿着
Unable to read dynamic function table entry at 00000000`2450b580
这需要很长时间才能打印 - 超过一分钟 - 并且它会溢出滚动缓冲区,所以我丢失了大部分输出。
我现在已经通过对包含此消息的 DLL 进行十六进制编辑来解决这个问题,但是……说真的。是否有官方的方法来删除此消息?
我已经准备好接受来自问题线程的糟糕堆栈跟踪。
如果你是 运行 最新版本的 windbg
您可以尝试设置引擎初始化设置
0:000> dx Debugger.Settings.EngineInitialization.VerifyFunctionTableCallbacks
Debugger.Settings.EngineInitialization.VerifyFunctionTableCallbacks : true
0:000> dx Debugger.Settings.EngineInitialization.VerifyFunctionTableCallbacks = false
Debugger.Settings.EngineInitialization.VerifyFunctionTableCallbacks = false : false
0:000> dx Debugger.Settings.EngineInitialization.VerifyFunctionTableCallbacks
Debugger.Settings.EngineInitialization.VerifyFunctionTableCallbacks : false
请注意,这是一项安全功能,因此禁用它需要您自担风险。有两种选择:
- 如果您知道是哪个模块导致的,您可以将完整路径添加到寄存器:HKLM\Software\Microsoft\Windows NT\CurrentVersion\KnownFunctionTableDlls 注册表项
- 您可以使用
.settings set EngineInitialization.VerifyFunctionTableCallbacks=false
禁用它
第二个选项仅为当前会话禁用它。如果你想让它永久化,你可以在后面加上.settings save
。