vc2005 附加到进程.(调试错误)

 

1: 修改xEye. 在退出的时候加入如下代码:
 xEyeLog *pLog = 0;
 pLog->write_log(Log_Function,"---- LoadIconRes Ok ----");  // 这个地方会有异常
 int *pInt = 0;
 *pInt = 3;

 

2:编译. 保证生成exe,pdb, 并且位于同一个目录

 

3:运行xeyez.exe

 

4:运行vc2005 , 附加到进程, 可以看到, 加载了对应dll的pdb文件.

 

5:退出xeyez, 保证重现错误.

 

6:vc2005定位到了断点.

 

///
注意, 使用vc2005附加到进程调试时, 必须在进程异常之前就附加到进程, 不然等出现异常了再附加, 就玩了.
我就是因为,等异常发生了再附加, 怎么也定位不到文件, 郁闷. 呵呵.

 

更多内容参考下面内容:
http://man.lupaworld.com/content/manage/vi/doc/debug.html#debug-gcc
2.2 用 Visual Studio 2005/Visual C++ 2005 Express 调试 Vim 的崩溃

首先启动 vim.exe 或 gvim.exe,然后启动 Visual Studio。(如果你没有 Visual
Studio,按照 |get-ms-debuggers| 的指示获取免费版本 Visual C++ 2005 Express
Edition。)

在 Tools 菜单上点击 Attach to Process (连接到进程)。选择 Vim 的进程。

在 Vim 里,重现崩溃。Visual Studio 这时会给出对话框,告诉你 Vim 进程出现了未处
理的例外。点击 Break,中断该进程并进入调试。

Visual Studio 这时弹出另一个对话框,告诉你无法载入符号文件所以不能显示源代码。
点击 OK。

这时会打开若干窗口。在 Call Stack (调用栈) 窗口按鼠标右键。然后选择 Load
Symbols (载入符号)。Find Symbols (寻找符号) 对话框会打开以寻找 (g)vim.pdb。导
航到你准备好的包含 PDB 文件的目录,然后选择 Open。

此时,你应该有了完整的调用栈,其中包含了 vim 的函数名和行号。双击任何一行会给
出 Find Source (寻找源代码) 对话框。导航到包含 Vim 源代码的目录 (如果有的话)。

如果你不知道如何继续调试,按照 ":help bug-reports" 的步骤进行。把调用栈粘贴到
漏洞报告里。

如果有 Visual Studio 的付费版本,你可以用 Debug 菜单保存一个 minidump 并在漏洞
报告里一并发送。minidump 是一个小文件 (<100KB),里面包含进程的状态信息。
Visual C++ 2005 Express Edition 不能保存 minidump 也不能安装成为 just-in-time
(即时) 调试器。如果你需要保存 minidump 或者需要即时 (或postmortem,事后) 调试
器的话,使用 WinDbg,|debug-windbg|。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值