在运行我自己的基于Qt的OpenGL应用程序时,我在fglrxdri库中遇到段错误。我从gdb获得的回溯(为Qt和我自己的应用程序安装了dbg符号):Thread1(Thread0xb7fd9720(LWP1809)):#00x06276705in??()from/usr/lib/fglrx/dri/fglrx_dri.so#10x000020dcin??()#20x000020d9in??()#30x00000000in??()我无法从我的代码中看到我在哪里调用了导致段错误的fglrx函数。我如何扩展此回溯以从main()函数向下查看到fglrxdri库?编辑:确认我自己的应用程序是
我正在使用Linux(Ubuntu11.10)和gdb7.3/Nemiver0.8.2。我想显示STL容器的内容,但到目前为止我还没有真正成功。我应该使用任何其他可视化调试器(基于gdb更好)来显示STL容器变量吗?我正在寻找支持容器组合的解决方案(即std::map>>)。干杯 最佳答案 足够新的GDB版本支持来自Python的pretty-printAPI。这允许应用程序提供Python代码来自定义对象显示的某些方面。此代码旨在与CLI(在gdb提示符下“打印”)和MI(GUI使用或至少应该使用的界面)一起使用。足够新的GCC版
我正在使用Linux(Ubuntu11.10)和gdb7.3/Nemiver0.8.2。我想显示STL容器的内容,但到目前为止我还没有真正成功。我应该使用任何其他可视化调试器(基于gdb更好)来显示STL容器变量吗?我正在寻找支持容器组合的解决方案(即std::map>>)。干杯 最佳答案 足够新的GDB版本支持来自Python的pretty-printAPI。这允许应用程序提供Python代码来自定义对象显示的某些方面。此代码旨在与CLI(在gdb提示符下“打印”)和MI(GUI使用或至少应该使用的界面)一起使用。足够新的GCC版
我将gdb与-x参数一起使用,以便进行调试而不必在每个断点处以交互方式继续。[root@StackOverflow.com]$catgdb_cmds_01bSomeSourceFile.cpp:123commandsbtcontend然后我附加到一个在执行过程中使用SomeSourceFile.cpp的进程:[root@StackOverflow.com]$gdb-p'pidofSomeRunningProgram'-xgdb_cmds_01GNUgdb(GDB)RedHatEnterpriseLinux(7.2-92.el6)...现在,让SomeSourceFile.cpp:123
我将gdb与-x参数一起使用,以便进行调试而不必在每个断点处以交互方式继续。[root@StackOverflow.com]$catgdb_cmds_01bSomeSourceFile.cpp:123commandsbtcontend然后我附加到一个在执行过程中使用SomeSourceFile.cpp的进程:[root@StackOverflow.com]$gdb-p'pidofSomeRunningProgram'-xgdb_cmds_01GNUgdb(GDB)RedHatEnterpriseLinux(7.2-92.el6)...现在,让SomeSourceFile.cpp:123
我正在使用供应商API,我拥有其源代码,我可以设置断点并且它们命中率很高,但是如果我尝试在gdb中调用一个函数(按其名称),它会显示“入口点地址未知”。,这是什么意思,有什么解决方法吗?我试过谷歌搜索,但没有找到任何有用的东西。非常感谢您的帮助。下一步我想使用objdump获取函数的地址,然后尝试直接调用地址,如果它有效。但是我不知Prop体怎么做,也请在这里指导我,供应商库是动态链接到我自己的程序的编辑1:在执行“信息地址“函数””之后,我尝试调用类似“调用(*“地址”)(参数)”,它仍然显示相同的错误,请注意它确实知道函数地址。 最佳答案
我正在使用供应商API,我拥有其源代码,我可以设置断点并且它们命中率很高,但是如果我尝试在gdb中调用一个函数(按其名称),它会显示“入口点地址未知”。,这是什么意思,有什么解决方法吗?我试过谷歌搜索,但没有找到任何有用的东西。非常感谢您的帮助。下一步我想使用objdump获取函数的地址,然后尝试直接调用地址,如果它有效。但是我不知Prop体怎么做,也请在这里指导我,供应商库是动态链接到我自己的程序的编辑1:在执行“信息地址“函数””之后,我尝试调用类似“调用(*“地址”)(参数)”,它仍然显示相同的错误,请注意它确实知道函数地址。 最佳答案
当用gdb打开一个coredump时,gdb会尝试将完整的coredump加载到内存中吗?我在我们的一个暂存系统上发现了一个大小为35Gb的核心转储。我们的操作说明要求使用gdb创建回溯。恐怕gdb会尝试将完整的coredump加载到内存中,并通过用尽所有可用内存使暂存区域不可用。我们在RedHatEL5/64位安装上使用gdb7.0.1。 最佳答案 Whenopeningacoredumpwithgdb,willgdbtrytoloadthefullcoredumpintomemory?没有。I'mafraidgdbwilltry
当用gdb打开一个coredump时,gdb会尝试将完整的coredump加载到内存中吗?我在我们的一个暂存系统上发现了一个大小为35Gb的核心转储。我们的操作说明要求使用gdb创建回溯。恐怕gdb会尝试将完整的coredump加载到内存中,并通过用尽所有可用内存使暂存区域不可用。我们在RedHatEL5/64位安装上使用gdb7.0.1。 最佳答案 Whenopeningacoredumpwithgdb,willgdbtrytoloadthefullcoredumpintomemory?没有。I'mafraidgdbwilltry
当我使用-g编译程序并获得核心转储时,我可以使用gdb读取可执行文件和核心转储以调试程序在崩溃前遇到的情况。特点之一gdb优惠是list选项,可以列出使用可执行文件和核心转储编译的源代码。我用了strings-a使用可执行文件和核心转储,我什至找不到一个if或for语句,而我确定代码中有很多语句。那么代码是从哪里来的呢?我在一台计算机上编译代码并在另一台计算机上运行它,因此生成核心转储的计算机上没有源代码,而且它似乎不在可执行文件或核心转储中。有什么建议么?我真的很想打印可执行文件和核心转储中的所有源代码,这可能吗?我的意思是不运行gdb,我确信可以编写一个使用gdb的脚本并且可以列出