草庐IT

runtime-gdb

全部标签

c++ - 在 C++ 中继续迭代,直到 gdb 中的特定迭代次数

我正在使用gdb-7.0.1,我想我在我的代码的某个部分检测到一个错误,它有一个for循环。for循环看起来像for(inti=0;i这里的end是一个非常大的整数。代码在第一次迭代时没有崩溃,似乎在迭代号end/2的某处崩溃。因为我想了解代码在迭代次数end/2时的行为,只需stepping和nexting来自i=0直到我到达这个迭代点,是不可行的。有没有办法告诉gdb继续执行for循环直到i得到值end/2然后等待用户手动单步执行迭代次数end/2?我在UbuntuLinux上使用gcc-4.5.2 最佳答案 这是关于condi

安卓工作室 3 : Outdated Kotlin Runtime

我当前的项目中没有使用kotlin,但总是显示以下警告:当我点击“更新运行时”将显示以下弹出窗口:这里是我使用的依赖项:有人知道如何解决这个谷歌技巧吗?**编辑这是AndroidStudio的错误,因为我没有使用kotlin。如果任何机构将成为任何成语,如何解决它可以为这个问题添加额外的答案 最佳答案 将此添加到您的build.gradle(Project)buildscript{ext.kotlin_version='1.1.60'repositories{google()jcenter()}dependencies{classp

安卓工作室 3 : Outdated Kotlin Runtime

我当前的项目中没有使用kotlin,但总是显示以下警告:当我点击“更新运行时”将显示以下弹出窗口:这里是我使用的依赖项:有人知道如何解决这个谷歌技巧吗?**编辑这是AndroidStudio的错误,因为我没有使用kotlin。如果任何机构将成为任何成语,如何解决它可以为这个问题添加额外的答案 最佳答案 将此添加到您的build.gradle(Project)buildscript{ext.kotlin_version='1.1.60'repositories{google()jcenter()}dependencies{classp

c++ - gdb 找不到由 clang++ 编译的源文件

当使用clang++编译我的项目时,目标代码中显然没有包含源文件的路径。这意味着gdb无法找到用于显示代码的源文件。对于特定实例,我可以使用gdb的directory命令添加一个目录,但我的项目有很多源目录,这很快就会变得烦人。当我将我的配置切换为使用g++时,gdb会简单地找到我所有的源文件。此功能适用于SnowLeopard上的clang++2.9,但不适用于Lion上的clang++3.1。我有XCode4.3.2。是否有clang选项强制在目标文件中使用完整路径?我的配置可能还有其他问题吗? 最佳答案 我发现了这一点:问题发

c++ - gdb 错误不是可执行格式 : File format not recognized

我正在尝试在Ubuntu16.04上调试一个简单的“helloworld”C++程序,但gdb无法识别可执行文件格式。但是,我能够在命令行上成功运行可执行文件。这是代码#includeusingnamespacestd;intmain(){cout我使用命令编译程序文件TestProject.cppg++-gTestProject.cpp-ohello然后要调试,我给出命令gdb./hello我收到以下错误信息GNUgdb(Ubuntu7.11.1-0ubuntu1~16.5)7.11.1Copyright(C)2016FreeSoftwareFoundation,Inc.Licens

c++ - gdb 没有捕捉到 vector 抛出的 std::out_of_range

使用MinGW4.6.2(使用g++-g-std=c++0x)编译以下内容,如果我尝试,gdb似乎不想捕获std::out_of_range>catch。如果我手动throw它可以正常捕获,我是不是做错了什么?#include#includeintmain(){std::vectorvec(10);try{vec.at(10);//thiswon'tbecaughtbygdb//throwstd::out_of_range("");//thiswill}catch(std::out_of_rangeconst&e){}} 最佳答案

c++ - gdb 地址和 "real"地址之间的区别?

如果我在gdb中运行一个C/C++程序(在使用-g标志编译之后)并检查某些变量、参数等的地址,然后我在gdb之外运行它(使用./)这些地址会和我在gdb中看到的一样吗?如果它们不同,它们通常是相似的还是会完全不同?我问这个是因为我有一个缓冲区溢出程序可以在gdb中完美运行(有断点和没有断点),但是当我尝试在gdb之外运行它时它不起作用。 最佳答案 Iexaminetheaddressesofcertainvariables,arguments...etc,andthenIrunitoutsideofgdb(using./)willt

c++ - 如何在 C 语言的 gdb 中调试 St9bad_alloc 失败?

我有一个程序失败了:terminatecalledafterthrowinganinstanceof'std::bad_alloc'what():St9bad_alloc我想这与malloc/free有关,但我不知道是哪一个。我可以在gdb中设置什么断点来中断错误,以便我可以查看堆栈跟踪?该程序是C和C++的组合,使用gcc3.4.2编译。 最佳答案 导致异常的并不是真正的malloc/free,它是“新的”,它肯定在您的应用程序的C++部分中。看起来您提供的参数对于"new"分配来说太大了。'std::bad_alloc'是由以下

使用 gdb 和 bazel(和 emacs)进行 C++ 调试

我想调试用Bazel生成的可执行文件。gdb调试器丢失了Bazel生成的链接,无法向我显示C++源代码。如何解决?项目根目录是/home/.../Cpp/./Cpp/├──bazel-bin->/home/picaud/.cache/bazel/_bazel_picaud...├──bazel-Cpp->/home/picaud/.cache/bazel/_bazel_picaud...├──bazel-genfiles->/home/picaud/.cache/bazel/_bazel_picaud...├──bazel-out->/home/picaud/.cache/bazel/

c++ - 在 Windows 上使用 gdb 调试 MinGW 程序,而不是在断言失败时终止

如何在window上设置gdb,使其不允许断言失败的程序终止?我打算检查程序中的堆栈跟踪和变量。例如,在gdb中运行使用MinGW'g++-gtest.cpp-otest'编译的test.cpp程序:#includeintmain(intargc,char**argv){assert(1==2);return0;}给予:$gdbtest.exeGNUgdb6.8Copyright(C)2008FreeSoftwareFoundation,Inc.LicenseGPLv3+:GNUGPLversion3orlaterThisisfreesoftware:youarefreetochang