我安装了libc6 & libc6-dbg。
(gdb) b
reak freeifaddrs
(gdb) run
Breakpoint 1, __freeifaddrs (ifa=0xa822e0) at ../sysdeps/unix/sysv/linux/ifaddrs.c:840
840 ../sysdeps/unix/sysv/linux/ifaddrs.c: No such file or directory.
(gdb) list
835 in ../sysdeps/unix/sysv/linux/ifaddrs.c
(gdb) disassemble
Dump of a
虽然在下面的代码中使用gdb,但是对于stl向量和字符串来说,漂亮的打印可以像预期的那样工作,但是列表的输出似乎很神秘。
list<int> l;
string a = "Hello";
vector<int> v(2,3);
l.push_back(5);
l.push_back(10);
gdb打印输出:
(gdb) set print pretty on
(gdb) disp v
1: v = std::vector of length 2, capacity 2 = {3, 3}
(gdb) disp a
2: a
我正在使用GDB调试一个Linux内核模块。加载模块后,我使用add-symbol-file添加模块符号。
当我在GDB中使用list命令查找模块中的符号时,它会找到它,例如:
(gdb) list __do_restart
122 * would provide type of error or success. In the case of early restart support from
123 * cr_mods a signal will be posted at appropriate time.
124 *
125 * NOTE: Thi
我尝试将vmlinux加载到gdb中,并使用ARM核心模拟器。
但我不明白为什么我要用Undefined target command: "sim".
下面是shell的输出:
$ arm-eabi-gdb vmlinux
GNU gdb (GDB) 7.3.1-gg2
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software:
帮帮忙,我该怎么解决这个问题?我无法将命令从stdin重定向到gdb。
我得到了这个错误:
charmae@charmae-pc:~/workspace/AVT$ echo "list" | gdb a.out
GNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
Thi
在我的linux机器上,计算一个比FLT_MAX大的浮子会导致无穷大,如下所示:
sacha@sacha-XPS13:~$ gdb
GNU gdb (GDB) 7.6.1-ubuntu
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There
当按照通常的方式运行时,gdb会像预期的那样停止:
(gdb) break main
(gdb) run
Starting program ...
Breakpoint 1, main ...
在管道运行时,gdb从不停止:
(gdb) run | cat
Starting program: /home/sds/z | cat
...
During startup program exited normally.
(gdb)
如何调试管道时的程序行为?
我的设置:
$ gdb --version
GNU gdb (GDB) Amazon Linux (7.6.1-64.33.amzn1)
$
我用以下方法为arm编译了gdbserver 7.6:
cd /gdb-7.6-src/gdb/gdbserver
./configure --target=arm-linux --host=arm-linux
make CC=/path/to/cross-compiler-gcc
然后,我为arm编译了gdb 7.6,并使用:
cd /gdb-7.6-src/
./configure --target=arm-linux --prefix=/opt/gdb-arm/install/
make && make install
我用以下方法编译了我的琐碎应用程序:
/path/t
我正在尝试调试一个在处理请求时派生的进程。
我已经将follow-fork-mode设置为child,允许gdb在命中子对象中的断点时闯入。但是,当我继续从子进程中继续时,父进程就分离了。
很多文档都指向选项detach-on-fork,但是如果我尝试设置这个选项,我会得到:
(gdb) set detach-on-fork on
No symbol "detach" in current context.
该选项的链接清晰可见:
编辑:系统信息
>uname -a
Linux localhost 2.6.9-78.0.22.ELsmp #1 SMP Thu Apr 3
我正在尝试远程调试Linux的内核。我已经创建了一个VM (使用VMware),并使用gdb从我的PC连接到它,一切正常。
问题是gdb无法加载vmlinux-gdb.py脚本。我尝试在gdb上使用source命令添加它,但得到以下错误:
Traceback (most recent call last):
File "~/workspace/kernels/default-kernel/scripts/gdb/vmlinux-gdb.py", line 28, in <module>
ImportError: No module named 'linu
我在Linux上使用GDB调试一个C++程序,需要在程序运行时查看成员变量的值。不幸的是,成员变量被命名为list,这恰好是一个GDB关键字。所以当我尝试的时候:
print m_operations.m_data[10].m_data.list
我得到..。
A syntax error in expression, near list'.
我尝试了各种方法来向GDB表明我正在输入一个文字表达式,比如在变量名两边加上双引号或单引号,但这只会导致更多的语法错误。我在GDB手册中找过了,找不到任何可以解决这个问题的方法。我不能重命名成员变量,因为我没有被授权修改那个类。此外,list是一
代码(m1.cpp):
#include <iostream>
using namespace std;
int main (int argc, char *argv[])
{
cout << "running m1" << endl;
return 0;
}
GDB版本: GNU gdb (GDB) 7.6.2
使用:g++ -g m1.cpp构建
命令行历史记录:
(gdb) b main
Breakpoint 1 at 0x40087b: file m1.cpp, line 6.
(gdb) r
Starting pro
我在Ubuntu 19.04上使用VS代码,并试图运行一个非常简单的程序:
int main(int argc, char *argv[]) {
cout << "hello";
//some other simple stuff
我正在使用gdb逐步执行这段代码。我的launch.json文件如下:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
//
我有一个程序,当我从终端(没有GDB)运行时,它会打印一些输出。假设输出如下所示
welcome to CMP simulator
initializing
finish initialization
now run
goodbye
现在,当我想使用GDB时,程序会给出一个PID,我用它来连接GDB。假设程序的输出现在如下所示
welcome to CMP simulator
gdb - 5932 (Run this command on another terminal and type "continue" at GDB prompt)
当程序等待SIGCONT时,我
我有一个C程序,它编写了一个非常复杂的脚本来运行它。我需要使用gdb来调试这个程序。我尝试运行这个脚本并将gdb附加到它的进程中,但是我无法设置我需要的断点:
$ gdb median.o 27944
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free softwa
我对gdb有问题,它不是在一个函数中停止。你能解释一下为什么和如何在调用strcpy后停止程序吗?
grzes@trampek:~/poligon$ gdb ./char_array2
GNU gdb (GDB) 7.2
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redi