【发布时间】:2015-06-22 14:15:50
【问题描述】:
我在 Win8.1 中遇到了 OLLYDBG 问题。
例如,我正在使用一个带有文本框和命令框的简单 VB 6.0 程序。当我在 WinXP 中通过 OLLYDBG 运行它时,它会正确显示所有引用的文本字符串,而在 Win 8.1 中它只显示内部信息和随机值。
SSE 和 IP 已关闭。
我的意思是它没有正确读取 Win8 中的任何程序,以管理员身份运行并附加。
【问题讨论】:
我在 Win8.1 中遇到了 OLLYDBG 问题。
例如,我正在使用一个带有文本框和命令框的简单 VB 6.0 程序。当我在 WinXP 中通过 OLLYDBG 运行它时,它会正确显示所有引用的文本字符串,而在 Win 8.1 中它只显示内部信息和随机值。
SSE 和 IP 已关闭。
我的意思是它没有正确读取 Win8 中的任何程序,以管理员身份运行并附加。
【问题讨论】:
您在问为什么 20c 程序不起作用?
您也可以在调试器中启动。
windbg 或 ntsd(ntsd 是一个控制台程序,可能已安装)。两者都来自 Debugging Tools For Windows。
下载并安装 Windows 调试工具
http://msdn.microsoft.com/en-us/windows/hardware/hh852363
安装 Windows SDK,但只需选择调试工具。
在 C:\ 中创建一个名为 Symbols 的文件夹
启动 Windbg。文件菜单-符号文件路径并输入
srv*C:\symbols*http://msdl.microsoft.com/download/symbols
然后
windbg -o -g -G c:\windows\system32\cmd.exe /k batfile.bat
您可以按F12 停止它,kb 将显示调用堆栈(g 继续程序)。如果有错误,它也会停止并显示它们。
键入lm 列出加载的模块,键入x *!* 列出符号,键入bp <symbolname> 设置断点
如果在 VB6 中编程,则此环境变量 link=/pdb:none 将符号存储在 dll 中,而不是单独的文件中。确保在没有优化的情况下编译程序并勾选 Create Symbolic Debug Info 框。两者都在项目属性的编译选项卡上。
CoClassSyms (microsoft.com/msj/0399/hood/hood0399.aspx) 也可以从类型库中生成符号。
【讨论】: