我正在使用一个在运行时生成大量代码的程序,并且似乎不会为其生成任何展开数据。 (我没有这个程序的源代码;我正在为其编写一个插件。)
当程序挂起时,我使用 WinDbg 闯入它,并尝试使用以下命令获取所有线程的堆栈跟踪~* k
。除了堆栈跟踪之外,我还沿着以下行获取消息的页面和页面(以及页面,等等)
Unable to read dynamic function table entry at 00000000`2450b580
这需要很长时间才能打印 - 超过一分钟 - 并且它会溢出滚动缓冲区,因此我丢失了大部分输出。
我现在已经通过十六进制编辑包含此消息的 DLL 来解决这个问题,但是……说真的。有没有官方的方法可以消除此消息?
我已经准备好应对问题线程中的蹩脚堆栈跟踪。
请注意,这是一项安全功能,因此禁用它需要您自担风险。有两种选择:
- 如果您知道哪个模块导致此问题,可以将完整路径添加到注册表: HKLM\Software\Microsoft\Windows NT\CurrentVersion\KnownFunctionTableDlls 注册表项
- 你可以禁用它
.settings set EngineInitialization.VerifyFunctionTableCallbacks=false
第二个选项仅在当前会话中禁用它。如果你想让它永久化,你可以跟随它.settings save
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)