我在我的Ubuntu12.04(64位)上有一个程序(不是shell脚本),它运行良好,但是当我使用gdb附加到它时,got消息文件格式无法识别。这真是令人费解。知道为什么吗?谢谢。
# gdb -p 25016
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
代码(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
我试图在64位Ubuntu系统上调试32位可执行文件.它本身在命令行中运行良好,但是当我尝试使用gdb时,它挂在ld-linux.so.2中。此外,gdb适用于可执行文件的64位版本。有人知道我该试试什么吗?
我刚刚将一台机器重新映射到Ubuntu18.04.3,并安装了gcc和g++的多库版本。
提前谢谢。
gdb <executable>
GNU gdb ...
This GDB was configured as "x86_64-linux-gnu"
...
Reading symbols from <executable>...done.
(gd
我在两台机器上编译了完全相同的源代码/make文件: Linux Fedora 1632位和Linux Fedora 1764位。
在32位机器上:
(gdb) break FRS::FRS
Breakpoint 4 at 0x804ea29: file ntfs.cpp, line 751.
Breakpoint 5 at 0x804e18f: file ntfs.cpp, line 505.
warning: Multiple breakpoints were set.
Use the "delete" command to delete unwanted breakpoi
我已经在我的$HOME目录上创建了一个新文件.gdbinit。当我执行gdb命令时,我得到了以下错误。
bld05 abc /users/abc 25 > gdb
GNU gdb Red Hat Linux (6.3.0.0-1.132.EL4rh)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of
我在ubuntu12.04中使用android-ndk-r9d-linux-x86的ndk来调试android本机应用程序"hello-jni",但是它收到了这个错误。
WARNING: The shell running this script isn't bash. Although we try to avoid bashism in scripts, things can happen.
.../adt-bundle-linux-x86-20140321/android-ndk-r9d/ndk-gdb: 143: .../a
我试图运行一个特定的程序,我得到了错误
/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./software1_runtime)
/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/software1/bin/../lib/libsoftware.so.4)
我做了命令
sudo find / -name "libstdc++.so.6*"
并得到了结果
/home/user/S
我安装了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
我正在尝试让漂亮的打印在Qt5下工作,但是在RHEL6.6上使用它的gdb版本:
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-75.el6)
我找到了链接到的,它似乎提供了在Qt5上进行漂亮打印的代码。但当我在RHEL6.6上我的gdb版本上尝试它时,我得到了这样的结果:
Traceback (most recent call last):
File "<string>", line 3, in <module>
File "/home/myusername/gdb/printers/qt5pr
在RedHat Linux上构建了一个共享对象,虽然所有代码都是使用debug编译的,但调试器(gdb)拒绝加载符号并发出错误,如下所示:
...
GNU gdb Fedora (6.8-37.el5)
...
This GDB was configured as "x86_64-redhat-linux-gnu"...
Dwarf Error: wrong version in compilation unit header (is 4, should be 2) [in module libgrokf.so]
有了这个错误,我无法在任何函数中触发断点,也看不到正确的堆
我正在用RHEL7构建我的ProC代码,并将其部署到RHEL6服务器。它工作得很好,但是我不能正确地使用gdb。它说-“单步执行直到退出函数,它没有行号信息。”
如果我在RHEL7服务器上部署,我不会看到这个错误,我可以逐行执行gdb。
gdb在RHEL6中部署的app中运行时:
$> gdb progname
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-92.el6)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or l
我有一个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
我在Linux 64位机器上运行GDB 7.2。这一切都很好,但现在我想尝试使用GDB来帮助我检测内存泄漏,如下面的文章所示:
有一段是这样写的:
GDB with info leaks command availability check:
# gdb -q
(gdb) help info leaks
If you find the help for that command,then GDB is capable to debug the program for memory leaks. Else the support of GDB to
在我逐步了解此文件中的任何代码(特别是静态库中的代码)之后,gdb会在几秒钟后崩溃。
我可以逐步通过静态库的其他部分和共享库,我已经加载了,它运行良好。该程序运行良好,在gdb崩溃后不会崩溃。
gdb版本7.5.91.20130417-cvs-ubuntu on linux mint 15
如何防止gdb在in创建器中崩溃?
核心文件是由剥离了符号的代码发布版本(g++)生成的。
以相同(SVN)版本的代码为例,我修改了构建选项以包含符号。
我应该能够使用我构建的包含符号的可执行文件来调试该核心文件吗?看起来我做不到,但我只是想确保这不是我做错了什么。
bash-3.2$ gdb ./MyTest.53519 -c ~/public_html/core.20375.MyTest
GNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-42.el5)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+
我已经在VMware工作站上建立了Linux内核调试环境。但是,当我尝试连接正确的gdb时,我无法设置任何断点或检查任何内核符号。
目标机(debugee) Ubuntu 18:我已经用以下指令编译了linux内核5.0-0:
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
CONFIG_DEBUG_INFO_DWARF4=y
CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_SECTION_MISMATCH is not set
#
当我在Linux中运行Eclipse CDT调试器时,我在GDB控制台中看到以下错误:
The target endianness is set automatically (currently little endian)
Traceback (most recent call last):
File "/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19-gdb.py", line 63, in <module>
from libstdcxx.v6.printers
如何在OSX上可视化由编译器生成的源代码和相应的汇编程序(无关紧要,但它是gfortran)?gdb显示一个或另一个(disas显示汇编程序,ls显示代码)。在linux下,objdump执行这项服务,但我找不到任何与OSX相关的东西(如果是Lion)。
根据gdb手册,反汇编的/m选项应该执行此技巧,但我得到了一个语法错误。
GNU gdb 6.3.50-20050815 (Apple version gdb-1708) (Mon Aug 8 20:32:45 UTC 2011)
是不是太旧了?在Lion上还有其他解决方案吗?