问题标签 [gdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
36718 浏览

gdb - 如何打印gdb 中的变量

有时 gdb 会为某些类型的变量打印“不完整类型”。这是什么意思,我们如何才能看到这个价值?

0 投票
6 回答
230886 浏览

c++ - 如何在 gdb 中打印长字符串的完整值?

我想在 GDB 中打印 C 字符串的全长。默认情况下它是缩写的,我如何强制 GDB 打印整个字符串?

0 投票
5 回答
34839 浏览

python - Linux 上 Python 中的环境变量

Python 对环境变量的访问并不能准确地反映操作系统对进程环境的看法。

os.getenv 和 os.environ 在特定情况下无法按预期运行。

有没有办法正确获取正在运行的进程的环境?


为了说明我的意思,请使用两个大致等效的程序(第一个在 C 中,另一个在 python 中):



现在,如果我们运行 C 程序并使用 gdb 附加到正在运行的进程,并通过执行以下操作强制更改引擎盖下的环境:

那么前面提到的 C 程序将开始每 5 秒喷出一次“我的价值”。但是,前面提到的 python 程序不会。

在这种情况下,有没有办法让 python 程序像 C 程序一样运行?

(是的,我意识到这是对正在运行的进程执行的非常模糊且可能具有破坏性的操作)

另外,我目前使用的是 python 2.4,这可能已在更高版本的 python 中修复。

0 投票
5 回答
135453 浏览

c++ - 如何在 GDB 中打印 C++ 向量的元素?

我想检查std::vectorGDB 中 a 的内容,我该怎么做?std::vector<int>为了简单起见,假设它是一个。

0 投票
5 回答
6413 浏览

c++ - 使用 GDB 和 C++ 调试内存错误

我在 gdb 中运行我的 C++ 程序。我对 gdb 没有真正的经验,但我收到如下消息:

我怎样才能找到发生这种情况的地方?查看内存并没有给我任何线索。

谢谢!

0 投票
3 回答
61630 浏览

debugging - 如何检查 GDB 中函数的返回值?

假设返回值分配给变量,是否可以检查 gdb 中函数的返回值?

0 投票
5 回答
29121 浏览

c - gdb 无法运行“无法识别文件格式”的 ELF 64 位程序

我正在尝试使用 GDB 进行调试(以查找烦人的段错误)。当我运行时:

从命令行,我收到以下错误:

当我执行时:

我得到以下信息:

我使用的是 GDB 6.1,可执行文件是用 gcc 版本 3.4.6 编译的。

在使用 gdb 方面,我有点不知所措,但据我所知,它应该在这种情况下工作。任何想法出了什么问题?

0 投票
5 回答
65776 浏览

iphone - 如何转储存储在 Objective-C 对象(NSArray 或 NSDictionary)中的数据

请原谅我在这里提出一个可能很愚蠢的问题,但在其他编程语言(如 PHP 或 Perl 之类的脚本语言)中,通常很容易转储变量中包含的所有内容。

例如,在 PHP 中有var_dump()orprint_r()函数。Perl 有Data::DumperCPAN 类等。

Objective-C 有类似的东西吗?在某些情况下,能够像这样转储所有内容会非常方便,而不是使用 gdb 检查每个变量。

0 投票
3 回答
1578 浏览

c++ - 挂在 _dl_sysinfo_int80 上的多线程应用程序

我有一个多线程应用程序挂起对_dl_sysinfo_int80() 的调用。根据gdb,所有线程都卡在这个调用中。

堆栈跟踪的顶部如下所示:

知道是什么原因造成的吗?

0 投票
5 回答
24806 浏览

c - 使 GDB 在调用函数时打印控制流

如何在调用 gdb 时打印感兴趣的函数,并根据它们在堆栈中的深度进行缩进?

我希望能够说类似(编造)的话:

并让 gdb 打印所有以 Foo 或 Bar 开头的函数,因为它们被称为。有点像 gnu cflow,除了使用调试符号并且只打印实际调用的函数,而不是所有可能的调用流。

无济于事的工具包括 cachegrind、callgrind 和 oprofile,它们对最常调用函数的结果进行排序。我需要保留调用顺序。

通配符(或等价物)是必不可少的,因为有很多 Foo 和 Bar 函数。虽然我会满足于记录每个功能。或者,也许告诉 gdb 记录特定库中的所有函数。

一些 GDB 向导必须有一个脚本来完成这个常见的工作!