这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭9年前。我目前正在尝试了解以下代码(http://pastebin.com/zTHUrmyx)是如何工作的,我的方法目前是在调试中编译软件并使用gdb单步执行代码。但是,我遇到了“步骤”并不总是告诉我发生了什么的问题。我特别不清楚的是我无法进入的EXECUTE{...}。我如何着手了解代码的作用?1/*2Copyright2008BrainResearchInst
我正在从事一个使用大量模板和库(如boost::fusion)的项目,我发现自己正在为一个可执行文件而苦苦挣扎,截至今天,该可执行文件的大小为600MB,而gdb仅需要1.7GB的内存来加载它,和符号查找将使它使用近3GBs..剥离后的二进制文件大约为5MB。问题是,为了生成更小的调试符号,是否需要做些什么?这不仅是gdb的问题,也是链接器的问题,链接器在链接使用-g标志编译的对象时使用另外1.2GB的RAM我试过-g1-g2和-g3,问题还是一样。 最佳答案 isthereanythingtobedoneinordertogene
我一直在尝试调试一个小东西,并且在尝试这样做时差点发疯。经过几个小时的解决问题,我终于有了一段代码,它是我问题的根源:#include#include#includeusingnamespacestd;intmain(){std::vectorfoo=std::vector();foo.push_back(0);foo.push_back(11);foo.push_back(222);foo.push_back(3333);std::stackbar=std::stack();cout编译后,使用:g++-std=c++11-ggdb-O0-pedantic-Wall-Wextra-W
我对libstdc++中的new运算符有一些疑问。我用C++编写了一个程序,但在内存管理方面遇到了一些问题。在用gdb调试以确定是什么在消耗我的ram之后,我得到了以下infoprocmappingsMappedaddressspaces:StartAddrEndAddrSizeOffsetobjfile0x4000000x4040000x40000/home/sebastian/Developement/powerserverplus-svn/psp-job-distributor/Release/psp-job-distributor0x6040000x6050000x10000x
我编译的c++项目,不算大,大约6M二进制。当我调试它并想要打印一些变量时,我输入前两个字符并按Tab键完成。然后gdb读取符号永远卡住。我怎么解决这个问题。谢谢! 最佳答案 ItypethefirsttwocharactersandpresstheTabtocomplete.Thenthegdbreadsymbolsforeverfreezing.HowcanIsolvethisproblem医生,我这样做的时候很疼。好吧,别那样做。说真的,如果你有一个非常大的二进制文件(不清楚你的6MB是否是有调试信息的大小),以及很多变量,那
我有一个用C++编写的程序,在Linux上用-g编译。当我在gdb下运行时,我可以1)setbreakpoints2)atthosebreakpoints,printoutvariables3)seethestackframe4)givenavariablethat'sastructure,printoutpartsofthestructure(i.e.howddddisplaysinformation).现在,考虑到我的程序是用“-g”编译的——我是否可以在我的程序本身中使用这种功能?即鉴于我的程序是用“-g”编译的,是否有一些std::vectorgetStackFrame();我
我正在尝试调试由没有调试符号的C++二进制文件生成的核心文件。为了进行有效的调试,我需要调试符号,所以我使用-g选项重新编译了相同的代码,以便在重新编译的二进制文件中生成调试符号。我现在可以使用第二个二进制文件(有调试符号,其他一切都一样)调试由第一个二进制文件(没有调试符号)生成的同一个核心文件吗?非常感谢! 最佳答案 如果您使用例如编译原始可执行文件g++-O2...,您不能(正如您可能已经发现的那样)使用通过g++-g...构建的新可执行文件来调试核心--GDB需要符号匹配,但它们不会(由于优化级别不同)。您可以做的是使用与原
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。您最喜欢使用gdb调试C++程序的一些技巧是什么?对所有技巧都感兴趣,但也如何从gdb中调用对象的方法(可能是虚拟的)检查STL对象(漂亮地打印它们)防止gdb使用continue进入STL代码处理内联、线程、tcmalloc(或自定义分配器)跨不同session保留gdb命令的历史记录
我找不到。在观察器窗口中,我可以手动输入内存地址,但我希望看到更大的内存块...如果这不存在,是否有任何其他适用于Mac的免费内存映射器(XCode和Eclipse除外)?谢谢,锐 最佳答案 QtCreator最新的Git版本(1.3.80)支持内存调试。当您检查本地变量和观察者菜单中的变量时,您会在调试器上下文菜单中找到一个条目。请注意,目前还没有QtCreatorMaster分支的快照,但它们应该会在几周后返回。如果不想等,可以自己编译Creator。如果您不想参与git,请从http://qt.gitorious.org/qt
这个问题在这里已经有了答案:RunanApplicationinGDBUntilanExceptionOccurs(4个答案)关闭8年前。我正在调试带有异常抛出和异常处理的代码。我希望gdb在抛出异常时立即中断,这样我就可以检查程序的状态和调用堆栈。抛出任何异常时如何让gdb中断?