使用gdb调试qemu

7
我该如何使用gdb来调试qemu?我已经搜索了一些资料,但没有找到具体的方法。

@ismail 你好..有人能帮我开始使用gdb调试qemu吗?下面提供的信息对我来说不是很清楚。仅配置调试标志无法满足我的要求。(也许我完全错过了什么)我的要求是使用gdb调试发生在我的自定义qemu上的段错误。请注意,我不想使用qemu和gdb调试其他东西(内核)。 - Sandhya Kumar
2个回答

10

我使用GDB 7.5出现了一个错误 ->“访问内存地址错误”

看起来与“位置独立可执行文件”有关的问题...所以,请使用

./configure --enable-debug --disable-pie

并且调试应该能够正常工作。

1
+1 for --disable-pie。如果启用了pie,我的gdb 6.7.1也会出现相同的问题。 - webbertiger
至少在Ubuntu 18.04 GCC 7.4 QEMU 4.0.0中,不需要使用“--disable-pie”。您可能希望尽可能地使用PIE以减轻VM突破漏洞:https://dev59.com/lnE95IYBdhLWcg3wGZ5_#51308031 - Ciro Santilli OurBigBook.com

6
请尝试以下方法:
./configure --enable-debug

默认情况下,qemu使用" CFLAGS = -O2 -g "选项构建,这种方式无法添加调试符号。使用--enable-debug选项将意味着不会添加-O2。

至少在Ubuntu 18.04 GCC 7.4 4.0.0中,根据make V=1的默认构建方式,会使用-O2 -g选项参见,这将添加调试符号,以便查看源代码。问题是很多东西被优化掉了,所以你会失去可见性并且跳来跳去。如果没有-O2,我们就使用默认的-O0参见。Linux内核启动速度减慢了约3倍。 - Ciro Santilli OurBigBook.com

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接