草庐IT

MinGW-gdb

全部标签

c++ - 在运行时在 gdb 中添加函数

我正在尝试在gdb中调试一些基于STL的C++代码。代码有类似的东西intmyfunc(){std::mapm;...}现在在gdb中,在myfunc中使用“printm”给出了一些非常丑陋的东西。我看到推荐的是编译类似的东西voidprintmap(std::mapm){for(std::map::iteratorit=...){printf("%d:%d",it->first,it->second);}}然后在gdb中做(gdb)callprintmap(m)这似乎是处理问题的好方法...但是我可以将printmap放入一个单独的目标文件(甚至动态库)中,然后在运行时将其加载到gd

c++ - Eclipse MinGW C++ 找不到-lpthread

我目前正在尝试安装Eclipse来制作C++程序。我在编译预制的默认helloworld程序时遇到了问题。控制台显示此错误:c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../../mingw32/bin/ld.exe:cannotfind-lpthread我根本没有在我的程序中使用该库。关于如何解决这个问题有什么想法吗? 最佳答案 只需运行并打开MinGW安装管理器,它应该与MinGW一起预安装,在左侧面板上选择“所有包”,然后在右侧面板上搜索“mingw32-pthreads-w32"打

c++ - 如何在 gdb 中转储 STL 容器数据?

我无法在gdb中转储STL无序映射容器值。变量类型是std::unordered_mapvar;我的gdb版本-7.7.1GDB配置:configure--host=x86_64-linux-gnu--target=x86_64-linux-gnu--with-auto-load-dir=$debugdir:$datadir/auto-load--with-auto-load-safe-path=$debugdir:$datadir/auto-load--with-expat--with-gdb-datadir=/usr/local/share/gdb(relocatable)--wi

c++ - 在 gdb 中使用 [] 运算符和 unordered_map 给出未解析的运算符

我有一个C++代码,我在其中实例化一个unordered_map,然后使用cout打印它的值。这很好用。但是,当我尝试在gdb中运行它并打印unordered_map的值时,这给了我错误。下面是代码片段:std::unordered_mapmymap={{"Mars",3000},{"Saturn",60000},{"Jupiter",70000}};std::cout上面的两个cout语句都打印了键“Mars”的unordered_map值。但是,当我使用gdb然后尝试使用以下语句在键“Mars”处打印mymap的值时,出现错误。(gdb)printmymap.at("Mars")C

c++ - 如何在 C++ 头文件上使用 gdb?

我试图在网上搜索这个问题,但似乎找不到解决我问题的好方法。好吧,我正在尝试使用gdb来调试我的C++程序。该程序由一个简单的main.cpp和一个model.h组成。编译命令为g++-Wall-g-cmain.cppg++-Wall-gmain.o-oOUTPUT由于几乎所有算法都存储在model.h中,因此我需要调试该头文件而不是cpp文件。但是,每当我尝试在标题上放置一个断点时tbreakmodel.h:163gdb总是给我一条消息“没有名为TNFmodel.h的源文件”。在另一个问题中breakpointsinGDB,我看到了一个解决方案,通过“dir”将包含标题的文件夹添加到库

c++ - Mingw 构建 - 依赖于不是 Windows 原生的 DLL

我正在使用MinGW(GCC4.5.0)编译我的库以导出为共享库。为此,我使用类似于以下的MAKE命令编译所有源文件:gcc-shared-cmysource.cpp-omysource.o然后最后:gcc-shared-lstdc++-lm-lws2_32mysource.o-omylib.dll当我对输出文件执行依赖项遍历时(例如使用http://www.dependencywalker.com/),我看到有3个依赖项:KERNEL32.dllMSVCRT.dllLIBSTDC++-6.DLL让我的DLL依赖于Windows不附带的文件对于我的最终目标来说不是最佳选择。有没有一种方

c++ - 在 gdb 中打印流值 - C++

我正在尝试查看流的值(ifstream,但我猜它应该适用于所有类型的流)。示例代码可能如下所示:stringstreamin("OneTwoThreeFourFive");while(in)cout我试图通过以下方式来做到这一点,但它们似乎都不起作用:(gdb)printin(gdb)callcout...等等。有什么方法可以查看流的值吗? 最佳答案 您必须确保您拥有包含使用调试标志编译的libstdc++库的程序包。我安装了libstdc++6-8-dbg包,现在我可以在gdb中查看所有流对象数据。

c++ - 使用gdb的C++多态类中的vtable

这个问题在这里已经有了答案:PrintC++vtablesusingGDB(5个答案)关闭6年前。如何使用指向具有虚函数的基类对象的指针来显示虚表?

c++ - 配置 netbeans 8.0 gdb 以使用 gradle cpp 插件

最近我从Windows7中的VisualStudio切换到带有Netbeans8.0(C++)的Ubuntu。从那时起,我在从NetBeans调试我的应用程序时遇到了很大的问题(gdb工作得很好)。我用gradle编写了helloworldc++来演示我的问题。我花了很多时间,但没有任何重大进展。Gradle项目build.gradle:applyplugin:'cpp'executables{helloWorld}binaries.all{cppCompiler.args"-g"}主要.cpp:#include#includeintmain(void){inta=10;intb=12

c++ - Eclipse 是否有任何增强的 gdb 控制台?

目前Eclipse的gdb控制台只是连接javagui和底层gdb进程之间的标准输入/标准输出,因此缺少许多gdbshell功能,例如制表符自动完成、命令历史记录等。我想知道是否有用于快速gdb交互的增强型控制台。我真的很喜欢经常使用的gdb命令,如“print”和“call”等。恕我直言,“print”命令有时比Eclipse的“Expressionwatcher”更高级,因为它只执行一次,以后会随时评估并崩溃-易于。如果您认为没有必要使用gdb控制台,那么您在gdbUI到eclipseUI传输方面的最佳实践是什么。 最佳答案 除