草庐IT

c++ - 使用 gdb 检查标准容器 (std::map) 内容

假设有这样的东西:#includeintmain(){std::mapm;m[1]=2;m[2]=4;return0;}我希望能够检查从gdb运行程序的map内容。如果我尝试使用下标运算符,我会得到:(gdb)pm[1]Attempttotakeaddressofvaluenotlocatedinmemory.使用find方法不会产生更好的结果:(gdb)pm.find(1)Cannotevaluatefunction--maybeinlined有没有办法做到这一点? 最佳答案 此问题的现有答案非常已过时。由于GDB7.x中内置的P

c++ - 哪个是帮助教授编程的最佳 Linux C/C++ 调试器(或 gdb 的前端)?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭10年前。我向新手教授一种“精简”C++编程类(class)(“精简”意味着没有指针、没有类,只是普通的旧C,加上引用和STL字符串和vector)。学生之前没有编程经验,所以我相信使用交互式调试器可以帮助他们理解程序流程、变量和递归。本类(class)在Linux中教授。教他们使用gdb只是矫枉过正(他们不会使用或理解大多数功能)。我只需要一些简单但易于使用

objective-c - 这个 gdb 输出是什么意思?

我有一个播放声音的按钮,它在模拟器上似乎工作得很好,但我收到了这条消息:Errorloading/System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn:dlopen(/System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn,262):

c++ - 让 GDB 保存断点列表

好的,infobreak列出断点,但格式不适合使用--commandasinthisquestion重用它们.GDB是否有一种方法可以将它们转储到可以再次输入的文件中?有时在调试session中,需要在建立一组断点后重新启动GDB进行测试。.gdbinit文件的问题与--command相同。infobreak命令并没有列出命令,而是一个供人类使用的表格。为了详细说明,这里是infobreak中的一个示例:(gdb)infobreakNumTypeDispEnbAddressWhat1breakpointkeepy0x08048517 最佳答案

c++ - 是否有适用于 Linux 的 C++ gdb GUI?

关闭。这个问题不满足StackOverflowguidelines.它目前不接受答案。想改善这个问题吗?更新问题,使其成为on-topic对于堆栈溢出。5年前关闭。Improvethisquestion简而言之:有没有人知道gdb的GUI使它与您在较新版本的VisualC++中获得的功能集相当或接近?详细说明:作为一个在Windows中花费大量时间进行编程的人,每当我必须在Linux中编写C++代码时,我发现的最大绊脚石之一是使用命令行gdb调试任何东西所花费的时间比它在VisualStudio,它似乎并没有随着实践而变得更好。有些事情只是更容易或更快地以图形方式表达。具体来说,我正在

c++ - gdb 前端与 vim 一起使用?

这个问题在这里已经有了答案:gvimandgdbforC?(8个回答)关闭7年前。我可以在vim中使用哪些gdb前端来调试C和C++代码?目前我使用cgdb并对此感到满意。只是想知道外面还有什么? 最佳答案 看pyclewn.正如vim.org上所写:Pyclewn-anextensionforVimthatsupportsfulluseofgdbfromVim.Withbreakpoints,watchvariables,gdbcommandcompletion,etc.UsestheNetBeansinterface.也许开始使

c++ - gdb 前端与 vim 一起使用?

这个问题在这里已经有了答案:gvimandgdbforC?(8个回答)关闭7年前。我可以在vim中使用哪些gdb前端来调试C和C++代码?目前我使用cgdb并对此感到满意。只是想知道外面还有什么? 最佳答案 看pyclewn.正如vim.org上所写:Pyclewn-anextensionforVimthatsupportsfulluseofgdbfromVim.Withbreakpoints,watchvariables,gdbcommandcompletion,etc.UsestheNetBeansinterface.也许开始使

c++ - 有没有办法在 gdb 中设置一个以调用堆栈为条件的断点?

我正在Linux上的gdb7.1中调试C++。我有一个函数a()在代码的很多地方都被调用。我想在其中设置一个断点,但前提是它是从b()调用的。有什么办法吗?只有在c()调用b()时,有什么办法可以做到这一点,以此类推吗? 最佳答案 更新:现在有一个betteranswer对于这个问题:使用GDB_is_caller便利函数。您描述的需求经常出现,通常是在some_utility_fn被大量调用的上下文中,但您只对来自some_other_fn的调用感兴趣。您可以使用来自CVS主干的GDB中新的嵌入式Python支持来编写整个交互的脚

c++ - 有没有办法在 gdb 中设置一个以调用堆栈为条件的断点?

我正在Linux上的gdb7.1中调试C++。我有一个函数a()在代码的很多地方都被调用。我想在其中设置一个断点,但前提是它是从b()调用的。有什么办法吗?只有在c()调用b()时,有什么办法可以做到这一点,以此类推吗? 最佳答案 更新:现在有一个betteranswer对于这个问题:使用GDB_is_caller便利函数。您描述的需求经常出现,通常是在some_utility_fn被大量调用的上下文中,但您只对来自some_other_fn的调用感兴趣。您可以使用来自CVS主干的GDB中新的嵌入式Python支持来编写整个交互的脚

c++ - docker 容器中的 gdb 返回 "ptrace: Operation not permitted."

我在容器和主机上检查了/proc/sys/kernel/yama/ptrace_scope-两者都将值报告为零,但当附加到pid时,一个gdb报告Readingsymbolsfrom/opt/my-web-proxy/bin/my-web-proxy...done.Attachingtoprogram:/opt/my-web-proxy/bin/my-web-proxy,process1ptrace:Operationnotpermitted.我也尝试过使用特权标志附加到容器dockerexec--privileged-itmywebproxy_my-proxy_1/bin/bash主