gdb相关内容

了解电篱笆和gdb的输出

当调试使用segfault终止的程序时,电篱笆与gdb一起返回: “ElectricFence退出:mprotect ()失败:无法分配内存 [线程0xb0bd4b70(LWP 5363)退出] 程序退出与代码0377。 bt 不会返回任何东西。 任何建议都将非常感激。 谢谢! 解决方案 你可能用完了内存映射区域,使用调试分配器时,默认值为低这可以在运行时通过 ..
发布时间:2017-04-18 04:29:01 开发方法

gdb |查看变量参数列表

我使用 bt 命令查看堆栈跟踪。输出是 (gdb)bt #0 0x001ae4cd在Debugger(message = 0x1“??? \一个“)在/SourceCache/xnu/xnu-1228.7.58/osfmk/i386/AT386/model_dep.c:705 #1 0x3bf97000在?? () #2 0x0012b0fa在panic(str = 0x5ef“”)在/ ..
发布时间:2017-04-18 04:15:35 C/C++开发

如何在gdb中退出wh模式

gdb中的'wh'模式对我来说不是很好。当我转储一些数据时,命令窗口和程序文本窗口重叠,看起来相当凌乱。我想退出wh模式而不退出调试器,而不会杀死正在运行的程序。我设置了几个断点,所以我不想退出调试器。 解决方案 Cx Ca Cx a Cx A 输入或离开TUI模式。 文档 ..
发布时间:2017-04-18 04:01:56 服务器开发

我可以在函数结尾跳过一个throw语句吗?

当我调试时,我有时会发现“重放”最后几句代码是有用的。例如: void foo(int& i){ i = 0; ++ i; i ++; } 通过调试器运行这个过程,您可以在函数体,然后从 foo 中的任何语句中输入:“jump file.cc:2”,调试器将返回到 i = 0 。我感谢这并不总是完美的,但有时找到您要搜索的错误就足够了。 我正在调查一 ..
发布时间:2017-04-18 03:39:16 开发方法

gcc / gdb:如何将源文件的绝对路径嵌入调试信息?

我只是想知道我是否可以告诉gcc在调试信息中嵌入源文件的绝对路径,即使我像 gcc -g ../src/somecode.c -o ../bin/somecode.o ,因为我看到它atm,gcc只是存储你提供的,所以如果你提供一个相对路径,最后,gdb只知道相对路径。 是否有一种方法来绕过它,而不使用绝对路径编译?喜欢:让gcc查找完整的路径? 提前 ..
发布时间:2017-04-18 03:27:55 开发方法

如何从包含子目录的给定路径递归加载所有符号文件?

您可以使用以下命令将单个符号文件指向gdb: symbol-file / usr / lib / debug / symbolfile.so 但是如何告诉gdb从包含子目录的给定路径加载所有符号文件? / p> 解决方案 在Linux系统上,您不应该使用 symbol-file GDB命令在第一位。 诀窍是准备您的二进制文件,使GDB将自动找到符号文件 ..
发布时间:2017-04-18 03:25:46 服务器开发

如何逐行运行Linux程序

我想和一些调试器一行一行地运行GTK + / C程序。我从来没有调试过一个Linux程序,所以在哪里可以找到关于如何调试代码的初学者的指示?我只想知道我必须从net下载源码,使用调试符号编译项目,并通过DDD或GDB运行源代码。任何人都可以提出建议如何开始研究这些科目,什么可能是一个好的调试器开始?我至少有时间学习东西。 解决方案 除了DDD外,还要看看nemiver,他们擅长于不同的东西 ..
发布时间:2017-04-18 02:48:47 服务器开发

多线程调试器

GDB在使用多线程(pthreads)进行调试时会遇到严重问题。 在* nix上有没有其他好的C / C ++多线程调试器? 解决方案 我个人调试多线程应用程序时没有任何GDB特定的问题,因此您可能有必要详细说明您所遇到的问题。这将有助于我们更好地回答你。 在linux中调试多线程应用程序时,我以前使用过几种辅助工具,其中大部分基于GDB,而不是更换它。这些包括: DDD h ..
发布时间:2017-04-18 02:45:36 C/C++开发

如何调试包含在libtool脚本中的程序?

我有一个涉及 共享库的项目,即: mylib.so (测试)程序使用这些共享库,即: test_mylib 当我尝试在 test_mylib 上运行 gdb 时,会打印: “test_mylib”:不可执行格式:无法识别文件格式 当我直接使用真实程序( .libs / test_mylib )时,仍然抱怨: .libs / test_mylib:无法加 ..
发布时间:2017-04-18 02:38:06 开发方法

如何grep在gdb打印

有没有办法在gdb中打印输出命令?在我的情况下,我正在调试使用gdb的核心转储,我正在调试的对象包含大量的元素。我发现很难找到匹配的属性,即: (gdb)print * this | grep 谢谢。 解决方案 (gdb)print * this | grep 实现这一点的“标准”方式是使用 Meta-X gdb 在 ..
发布时间:2017-04-18 02:35:05 服务器开发

KDevelop调试警告:无法设置控制终端:不允许操作

前一段时间,我将个人操作系统更改为linux,并将开发环境更改为KDevelop。 但是,调试c ++项目仍然无法正常工作。 我的KDevelop版本是4.2.2(我通过包管理安装) 每次我点击“调试按钮”应用程序从控制台开始消息 警告:GDB:无法设置控制终端:操作不允许并且调试功能不可用。 任何想法欢迎。 (如果您需要其他信息,请不要犹豫) 解决方案 我也遇 ..
发布时间:2017-04-18 02:31:22 C/C++开发

Cython调试,放一个断点

这是我的代码: 我正在尝试使用cython调试器放入一个断点: p> cython_file.pyx cimport cython def big_sum() : cdef int a [10000] for i in range(10000): a [i] = i # ..
发布时间:2017-04-18 02:29:29 开发方法

有没有一个gdb命令来完成循环构造?

在gdb中,我有完成命令可以轻松完成功能框的执行,通常在浏览调试器中的代码之后,再看几遍循环,我想完成循环,继续行走。目前,我通过在循环之后的第一行设置一个断点,并且 continue ,但是如果有一个简单的gdb命令来使相同的效果,但不需要设置断点并稍后被清除。 有没有在gdb中完成正在执行的当前循环的执行? > 解决方案 有没有一个gdb命令来完成循环构造? 在循环的最 ..
发布时间:2017-04-18 02:20:54 开发方法

iPhone应用程序的Xcode调试速度慢慢

我正在调试我在Xcode中编写的iPhone应用程序,但有时候现在调试器(这是GDB)会减慢很多(进行一步一步的调试),有时候会变得无响应(用于进入的图标有时候它会恢复正常并继续,其他时候它永远保持如此,或在控制台中显示一条消息:“超时”(或类似的东西),我可以看到我的CPU从活动监视器上升到90%。作为一种解决方法,我曾经在我感兴趣的代码行之后添加了一个突破口,并且随着“继续”继续进行(这样做运 ..
发布时间:2017-04-18 02:20:31 移动开发

如何使用gdb获取C ++中当前异常的值和类型?

gdb允许在抛出异常时捕获它们,当它们被捕获时。但有时抛出异常的行没有符号,或者在异常处理期间触发断点。如何检查当前异常的值? 解决方案 已更新 以下是GDB手册中的一些信息 目前在gdb中对C ++异常处理(catch throw and catch catch)有一些限制: 如果以交互方式调用函数,gdb通常将控件返回到 当函数执行完毕。但是,如果该调用引发了 ..
发布时间:2017-04-18 02:13:31 C/C++开发

如何将调试器附加到运行的Perl进程?

我有一个运行的Perl进程被卡住了,我想用调试器戳入内部,看看有什么问题。我无法重新启动该过程。我可以将调试器附加到正在运行的进程中吗?我知道我可以做 gdb -p ,但是 gdb 不能帮助我。我试过 Enbugger ,但失败了: $ perl -e'while(1){}'& [1] 86836 $ gdb -p 86836 ... 附加到进程86836. 读取共享库的符 ..
发布时间:2017-04-18 02:12:17 开发方法

任何方式来告诉我的iPhone应用程序是否在运行时在调试器下运行?

我想让我的错误处理代码的行为不同,如果它在调试器下运行。具体来说,如果我正在手机上运行,​​而不是连接到调试器,并且无法断言,我想将错误发送到我的服务器。当我在gdb下,我想打破调试器。 尽管我可以想像苹果如何编写代码,但我找不到运行时的任何文档 解决方案 描述这里为我工作正常 将它放在 - (void)viewDidLoad - (void)viewDidLoad ..
发布时间:2017-04-18 02:09:16 移动开发

GDB可以更改正在运行的程序的汇编代码吗?

我想为/ bin / ls添加一些额外的功能。 所以我在gdb上启动它,并在开头添加了一个断点。 现在的问题是:如何在内存中更改正在运行的程序的代码?我可以看到汇编代码,但是我无法修改。我该怎么做? 在Windows上,我可以轻松地用olldbg这样做。在Linux上怎么样? (我知道这样做,我只会改变内存中的进程代码,所以我可以将内存转储到一个文件,然后我将把更改保存在二 ..
发布时间:2017-04-18 02:08:49 服务器开发

gdb:循环执行期间如何暂停?

我正在Windows 7中使用NetBeans 7作为我的IDE,在g ++中编写一个软件渲染器,使用NetBeans 7。 我一直需要对其进行配置这个需求已经到了临界,现在我已经放弃了结构。我环顾四周,和我一起这个答案显示了同时跨平台并保持简单的最大的希望。 该方法的要点是可能是最基本的(并且在许多方法,最准确)的方式来简要/优化是简单地直接对堆栈进行抽样,然后通过暂停执行...不幸 ..
发布时间:2017-04-18 01:52:03 C/C++开发