Vs2013在Linux开发中的应用(33):反汇编
2015-01-08 21:09
447 查看
快乐虾http://blog.csdn.net/lights_joy/欢迎转载,但请保留作者信息
中返回给SDM,很遗憾,搞了两天,还是这样:
失败。
注意上面的Disassembly键,莫非机关就在这里?不管,先试一把,在我们的接口注册项中也加上这个值,然后神奇的事情就发生了:
加上IDebugDisassemblyStream2接口的实现,一番折腾,搞定:
不过很奇怪的是选项中的“显示源代码“这一项无论如何都不起作用。按照文档的描述和正常的猜想,在反汇编时,SDM将调用
通过dwFields应该能够得到是否显示源代码的选项的,但实际上这个值一直是不变的!先就这样吧!
1.1 失败
按照文档的说法,反汇编应当实现IDebugDisassemblyStream2接口,然后在// The debugger calls this when it needs to obtain the IDebugDisassemblyStream2 for a particular code-context. // The sample engine does not support dissassembly so it returns E_NOTIMPL public int GetDisassemblyStream(enum_DISASSEMBLY_STREAM_SCOPE dwScope, IDebugCodeContext2 codeContext, out IDebugDisassemblyStream2 disassemblyStream)
中返回给SDM,很遗憾,搞了两天,还是这样:
失败。
1.2 得来全不费工夫
把DebugEngine要求实现的接口都查了一遍,还是不得要领,差点就想放弃这个功能了,准备做模板和安装,结果在查看注册表的时候发现了一个有意思的值:注意上面的Disassembly键,莫非机关就在这里?不管,先试一把,在我们的接口注册项中也加上这个值,然后神奇的事情就发生了:
加上IDebugDisassemblyStream2接口的实现,一番折腾,搞定:
不过很奇怪的是选项中的“显示源代码“这一项无论如何都不起作用。按照文档的描述和正常的猜想,在反汇编时,SDM将调用
public int Read(uint dwInstructions, enum_DISASSEMBLY_STREAM_FIELDS dwFields, out uint pdwInstructionsRead, DisassemblyData[] prgDisassembly)
通过dwFields应该能够得到是否显示源代码的选项的,但实际上这个值一直是不变的!先就这样吧!
相关文章推荐
- Vs2013在Linux开发中的应用(23):信息输出
- Vs2013在Linux开发中的应用(24):触发断点
- Vs2013在Linux开发中的应用(20): 断点设置
- Vs2013在Linux开发中的应用(35):Telnet支持
- Vs2013在Linux开发中的应用(22):模块加载
- Vs2013在Linux开发中的应用(31):内存块显示
- Vs2013在Linux开发中的应用(27):线程列表
- Vs2013在Linux开发中的应用(28):单步执行
- Vs2013在Linux开发中的应用(14): 远程调试设想
- Vs2013在Linux开发中的应用(16): 修改调试器参数
- Vs2013在Linux开发中的应用(32):文本可视化
- Vs2013在Linux开发中的应用(36):Milestone-0.1.0
- Vs2013在Linux开发中的应用(29):寄存器信息
- Vs2013在Linux开发中的应用(26):表达式计算
- Vs2013在Linux开发中的应用(21): 线程创建
- Vs2013在Linux开发中的应用(18): 应用程序调试方案
- Vs2013在Linux开发中的应用(30):程序中断
- linux入门-使用vs2015开发与调试linux下应用
- caffe在windows下如何在vs2013新建工程开发自己的应用cpu模式
- linux入门-使用vs2015开发与调试linux下应用