草庐IT

linux - gdb:当 fglrx_dri.so 发生段错误时如何获得完整的回溯?

在运行我自己的基于Qt的OpenGL应用程序时,我在fglrxdri库中遇到段错误。我从gdb获得的回溯(为Qt和我自己的应用程序安装了dbg符号):Thread1(Thread0xb7fd9720(LWP1809)):#00x06276705in??()from/usr/lib/fglrx/dri/fglrx_dri.so#10x000020dcin??()#20x000020d9in??()#30x00000000in??()我无法从我的代码中看到我在哪里调用了导致段错误的fglrx函数。我如何扩展此回溯以从main()函数向下查看到fglrxdri库?编辑:确认我自己的应用程序是

c++ - 如何在 Linux 中的 GDB/Nemiver 中显示 C++ STL 容器

我正在使用Linux(Ubuntu11.10)和gdb7.3/Nemiver0.8.2。我想显示STL容器的内容,但到目前为止我还没有真正成功。我应该使用任何其他可视化调试器(基于gdb更好)来显示STL容器变量吗?我正在寻找支持容器组合的解决方案(即std::map>>)。干杯 最佳答案 足够新的GDB版本支持来自Python的pretty-printAPI。这允许应用程序提供Python代码来自定义对象显示的某些方面。此代码旨在与CLI(在gdb提示符下“打印”)和MI(GUI使用或至少应该使用的界面)一起使用。足够新的GCC版

c++ - 如何在 Linux 中的 GDB/Nemiver 中显示 C++ STL 容器

我正在使用Linux(Ubuntu11.10)和gdb7.3/Nemiver0.8.2。我想显示STL容器的内容,但到目前为止我还没有真正成功。我应该使用任何其他可视化调试器(基于gdb更好)来显示STL容器变量吗?我正在寻找支持容器组合的解决方案(即std::map>>)。干杯 最佳答案 足够新的GDB版本支持来自Python的pretty-printAPI。这允许应用程序提供Python代码来自定义对象显示的某些方面。此代码旨在与CLI(在gdb提示符下“打印”)和MI(GUI使用或至少应该使用的界面)一起使用。足够新的GCC版

c++ - 仅当函数的返回值等于 "Value"时,gdb 才能有条件地非交互地中断函数吗?

我将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

c++ - 仅当函数的返回值等于 "Value"时,gdb 才能有条件地非交互地中断函数吗?

我将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

linux - gnu C++ 库在向量分配期间陷入循环

运行linux内核3.6.6-1,gcc4.7.2-2,程序如下:1#include2usingnamespacestd;3intmain()4{5vectora(1从不从第5行返回。当我在gdb中运行时,我看到它卡在STL_algobase.h的第743/744行:0x000000000040101cinstd::__fill_n_a(__first=0x7fffeffd8060,__n=16777216,__value=@0x7fffffffe0a8:0)at/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++

linux - gnu C++ 库在向量分配期间陷入循环

运行linux内核3.6.6-1,gcc4.7.2-2,程序如下:1#include2usingnamespacestd;3intmain()4{5vectora(1从不从第5行返回。当我在gdb中运行时,我看到它卡在STL_algobase.h的第743/744行:0x000000000040101cinstd::__fill_n_a(__first=0x7fffeffd8060,__n=16777216,__value=@0x7fffffffe0a8:0)at/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++

c - Gdb 函数入口点未知

我正在使用供应商API,我拥有其源代码,我可以设置断点并且它们命中率很高,但是如果我尝试在gdb中调用一个函数(按其名称),它会显示“入口点地址未知”。,这是什么意思,有什么解决方法吗?我试过谷歌搜索,但没有找到任何有用的东西。非常感谢您的帮助。下一步我想使用objdump获取函数的地址,然后尝试直接调用地址,如果它有效。但是我不知Prop体怎么做,也请在这里指导我,供应商库是动态链接到我自己的程序的编辑1:在执行“信息地址“函数””之后,我尝试调用类似“调用(*“地址”)(参数)”,它仍然显示相同的错误,请注意它确实知道函数地址。 最佳答案

c - Gdb 函数入口点未知

我正在使用供应商API,我拥有其源代码,我可以设置断点并且它们命中率很高,但是如果我尝试在gdb中调用一个函数(按其名称),它会显示“入口点地址未知”。,这是什么意思,有什么解决方法吗?我试过谷歌搜索,但没有找到任何有用的东西。非常感谢您的帮助。下一步我想使用objdump获取函数的地址,然后尝试直接调用地址,如果它有效。但是我不知Prop体怎么做,也请在这里指导我,供应商库是动态链接到我自己的程序的编辑1:在执行“信息地址“函数””之后,我尝试调用类似“调用(*“地址”)(参数)”,它仍然显示相同的错误,请注意它确实知道函数地址。 最佳答案

linux - 巨大核心转储的 gdb 内存使用情况

当用gdb打开一个coredump时,gdb会尝试将完整的coredump加载到内存中吗?我在我们的一个暂存系统上发现了一个大小为35Gb的核心转储。我们的操作说明要求使用gdb创建回溯。恐怕gdb会尝试将完整的coredump加载到内存中,并通过用尽所有可用内存使暂存区域不可用。我们在RedHatEL5/64位安装上使用gdb7.0.1。 最佳答案 Whenopeningacoredumpwithgdb,willgdbtrytoloadthefullcoredumpintomemory?没有。I'mafraidgdbwilltry