Vs2013在Linux开发中的应用(25):曙光
来源:互联网 发布:延安广电网络商务宾馆 编辑:程序博客网 时间:2024/05/17 07:20
快乐虾
http://blog.csdn.net/lights_joy/
欢迎转载,但请保留作者信息
在SDM接收到断点命中的消息时,它将停止调试过程,然后获取程序状态,第一个要做的就是线程列表:
// EnumThreads is called by the debugger when it needs to enumerate the threads in the program. public int EnumThreads(out IEnumDebugThreads2 ppEnum)
在此需要填充线程的所有信息,由于在检测到线程创建时已经保存了线程信息,这里直接填充就可以了。
紧接着要处理:
// Retrieves a list of the stack frames for this thread. // We currently call into the process and get the frames. We might want to cache the frame info. int IDebugThread2.EnumFrameInfo(enum_FRAMEINFO_FLAGS dwFieldSpec, uint nRadix, out IEnumDebugFrameInfo2 enumObject) {
这个可以使用gdb的命令完成:
-thread-select 1
^done,new-thread-id="1",frame={level="0",addr="0x0805fc75",func="main",args=[{name="argc",value="1"},{name="argv",value="0xbffff6e4"}],file="../../app/rc/rc.c",fullname="/mnt/hgfs/nvs_dev/src/ipc/app/rc/rc.c",line="1565"}
-stack-info-frame
^done,frame={level="0",addr="0x0805fc75",func="main",file="../../app/rc/rc.c",fullname="/mnt/hgfs/nvs_dev/src/ipc/app/rc/rc.c",line="1565"}
-stack-list-frames
^done,stack=[frame={level="0",addr="0x0805fc75",func="main",file="../../app/rc/rc.c",fullname="/mnt/hgfs/nvs_dev/src/ipc/app/rc/rc.c",line="1565"}]
至此,我们已经可以看到VS正确地在断点的位置停下来了:
看看调用堆栈:
似乎语言填得有点问题,应该是C/C++才对!
局部变量:
模块窗口:
- Vs2013在Linux开发中的应用(25):曙光
- Vs2013在Linux开发中的应用(22):模块加载
- Vs2013在Linux开发中的应用(23):信息输出
- Vs2013在Linux开发中的应用(24):触发断点
- Vs2013在Linux开发中的应用(26):表达式计算
- Vs2013在Linux开发中的应用(27):线程列表
- Vs2013在Linux开发中的应用(29):寄存器信息
- Vs2013在Linux开发中的应用(30):程序中断
- Vs2013在Linux开发中的应用(32):文本可视化
- Vs2013在Linux开发中的应用(33):反汇编
- Vs2013在Linux开发中的应用(35):Telnet支持
- Vs2013在Linux开发中的应用(14): 远程调试设想
- Vs2013在Linux开发中的应用(17): 调试参数传递
- Vs2013在Linux开发中的应用(18): 应用程序调试方案
- Vs2013在Linux开发中的应用(19): 启动gdb
- Vs2013在Linux开发中的应用(20): 断点设置
- Vs2013在Linux开发中的应用(21): 线程创建
- Vs2013在Linux开发中的应用(28):单步执行
- Mina框架研究(3)
- rpm命令来查询各种包
- Java汉字转拼音pinyin4j用法
- SHCreateDirectoryEx
- 如何设置Java桌面程序界面外观(How to Set the Look and Feel)
- Vs2013在Linux开发中的应用(25):曙光
- Java中的String、StringBuffer和StringBuilder
- 2014年回顾总结与2015年学习规划
- 九度OJ 1062 分段函数
- ubuntu14 安装apache和php环境
- Struts2(一)Struts2配置详解
- 自我发现,找到适合自己的职位
- poj3090 Visible Lattice Points(莫比乌斯反演)
- HDOJ 1800 Flying to the Mars