怎样用insight 调试跟踪qemu源代码
来源:互联网 发布:nginx 虚拟目录 编辑:程序博客网 时间:2024/06/05 21:46
我在windows端用的cygwin环境来进行操作,首先,启动cygwin,进入insight,选中菜单view中的console项,然后再命令行输入,
gdb>file qemu.exe
通过nm 可以查看到main入口地址,然后在该地址打断点,比如qemu-0.12.3入口地址_main在0x5592e0,用list 查找该地址位于源码具体文件,位置。
gdb>list *0x5592e0
Error: no source file for address 0x5592e0
发现该地址没有对应的源文件,于是又查找_qemu_main的地址00405d50,
gdb>list *405d50
0x405d50 is in qemu_main (C:/msys/1.0/home/liu/qemu-0.12.3/vl.c:4850).
4845 index++;
4846 return 0;
4847 }
4848
4849 int main(int argc, char **argv, char **envp)
4850 {
4851 const char *gdbstub_dev = NULL;
4852 uint32_t boot_devices_bitmap = 0;
4853 int i;
4854 int snapshot, linux_boot, net_boot;
于是在vl.c:4850 打断点:
gdb>b 4850
Note: breakpoint 1 also set at pc 0x405d50.
Breakpoint 3 at 0x405d50: file C:/msys/1.0/home/liu/qemu-0.12.3/vl.c, line 4850.
然后设定启动参数:
gdb>set args -L . -m 256 -hda hdc.img -boot -c
最后启动qemu
gdb>r
Starting program: /cygdrive/c/program files/qemu/qemu.exe -L . -m 256 -hda hdc.img -boot -c
[New thread 3376.0x914]
Breakpoint 1, qemu_main (argc=9, argv=0x13f4d18, envp=0x0) at C:/msys/1.0/home/liu/qemu-0.12.3/vl.c:4850
这时就会在设定断点处停下来,就可以跟踪源代码了
补充:
info b : 查看断点。
info line : 查看当前源文件
- 怎样用insight 调试跟踪qemu源代码
- 调试跟踪Android源代码
- 如何调试跟踪Android源代码
- 如何调试跟踪Android源代码
- 如何调试跟踪Android源代码
- 如何调试跟踪Android源代码
- 如何调试跟踪Android源代码
- 如何调试跟踪Android源代码
- 如何调试跟踪Android源代码
- 如何调试跟踪Android源代码
- 如何调试跟踪Android源代码
- 如何调试跟踪Android源代码
- 如何调试跟踪Android源代码
- 如何调试跟踪Android源代码
- 如何调试跟踪Android源代码
- 如何调试跟踪Android源代码
- 如何调试跟踪Android源代码
- 终于能够在GDB+qemu进行跟踪和调试了
- 十进制转二进制
- SEO优化:好域名的选择是第一步
- 现在有点迷茫
- spring事务 Transaction rolled back because it has been marked as rollback-only
- 数组初始化
- 怎样用insight 调试跟踪qemu源代码
- JS--全局对象,属性,方法
- Web 设计与开发终极资源大全
- 如何通过NFS实现ubuntu与开发板的同步?
- java io 笔记--从模式看JDK IO
- 项目记录!
- C语言变量存储类型
- 我们应该考虑的问题
- 自我简介