Tag: gdb

我怎样才能让gdb保存命令的历史logging?

我如何设置gdb以便保存命令历史logging? 当开始一个新的gdb会话时,我想使用向上箭头键来访问以前会话的命令。

是否有一个用于Linux的C ++ gdb GUI?

简而言之:有没有人知道gdb的graphics用户界面(GUI)可以使它与标准的或者接近Visual C ++最新版本的function集相媲美呢? 详细地说:作为在Windows中花费大量时间进行编程的人,无论何时需要在Linux中编写C ++代码,我发现的一个较大的绊脚石是,使用命令行gdbdebugging任何东西都要花费我几倍的时间Visual Studio,而且它在实践中似乎并没有越来越好。 有些事情是更容易或更快来graphics表示。 具体来说,我正在寻找一个GUI: 处理所有的基础知识,如跨越代码,观察variables和断点 了解并可以显示复杂嵌套的C ++数据types的内容 在显示相关信息(如参数types)的同时,不会混淆,最好能够智能地浏览模板化的代码和数据结构 可以处理线程应用程序,并在不同的线程之间切换以查看或查看状态 可以处理附加到已经启动的进程或读取核心转储,除了在gdb中启动程序 如果这样的计划不存在,那么我想听听人们对至less满足一些要点的计划的经验。 有没有人有任何build议? 编辑: 列出可能性非常好,我会尽我所能,但是如果你能够在你的回答中join,这将会更有帮助: (a)您是否真的使用了这个GUI,如果是这样的话,您有什么正面/负面的反馈。 (b)如果您知道,上述哪些function不受支持 列表很容易得到,像这样的网站是伟大的,因为你可以得到一个人的应用程序的个人经验的想法。

如何在bash脚本中使用gdb使用命令行参数来运行程序?

在gdb上运行程序时,通常在“运行”命令中给出程序的参数。 有没有办法使用gdb来运行程序,以及在shell脚本中提供参数? 我在相关的问题中看到了一个答案,提到我们可以在脚本开始执行后将gdb附加到程序中。 但是,我将不得不“等待”这个程序。 我很好奇是否有其他方式来做到这一点。

如何传递参数并将stdin从文件redirect到程序在gdb中运行?

我通常运行一个程序为: ./a.out arg1 arg2 <file 我想用gdbdebugging它。 我知道set argsfunction,但只能从gdb提示符下工作。

打印所有全局variables/局部variables?

我怎样才能打印所有的全局variables/局部variables? 在gdb中可能吗?

如何在gdb中打印长string的完整值?

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

如何使用libc的debugging版本

简短的问题:如何让gdb使用libc的debugging符号? 更长的版本:我正在用gdbdebugging一个程序,我想查看一下libc使用的futex的信息。 但是,在debugging过程中的某个时候,我得到的输出如下: Catchpoint 2 (call to syscall futex), 0x00007ffff772b73e in ?? () from /lib/libc.so.6 (gdb) bt #0 0x00007ffff772b73e in ?? () from /lib/libc.so.6 #1 0x00007ffff767fb90 in ?? () from /lib/libc.so.6 #2 0x00007ffff767a4c0 in vfprintf () from /lib/libc.so.6 #3 0x00007ffff768565a in printf () from /lib/libc.so.6 …. 当我在断点处运行gdb中的info sharedlibrary时,我看到: (gdb) info sharedlibrary From To Syms Read […]

如何让ndk-gdb在Android上工作?

我试图让NDKdebugging器工作,但迄今没有成功。 为了确保我的debugging符号存在且有效,我使用编译器选项-O0和-g,以及ndk-build参数NDK_DEBUG = 1。 ndk-gdb脚本运行时遇到问题并启动GDB。 什么时候做一个“共享库”的命令,我得到这个: Symbols already loaded for /bla/bla/libMySharedLib.so 但是,当我尝试中断执行或者例如添加段错误来testing时,我从来没有从调用堆栈中获得该库中的任何符号。 我得到的唯一的符号是从libc,如果我等待一个互斥体例如中断执行。 也尝试添加断点没有运气。 GDB允许我添加断点,并且代码运行良好,但断点从不触发。 我正在使用API​​级别8,因为我需要支持Android 2.2(Froyo)。

如何使用“x / i $ pc”反汇编GDB中的16位x86引导扇区代码? 它被视为32位

例如,用BIOS打印到屏幕main.asm的引导扇区: org 0x7c00 bits 16 cli mov ax, 0x0E61 int 0x10 hlt times 510 – ($-$$) db 0 dw 0xaa55 然后: nasm -o main.img main.asm qemu-system-i386 -hda main.img -S -s & gdb -ex 'target remote localhost:1234' \ -ex 'break *0x7c00' \ -ex 'continue' \ -ex 'x/3i $pc' 我得到: 0x7c00: cli 0x7c01: mov $0x10cd0e61,%eax 0x7c06: hlt […]

如何加载程序读取标准input和参数在gdb中?

我有一个程序,从标准inputinput,也从命令行采取一些参数。 它看起来像这样: cat input.txt > myprogram -path "/home/user/work" 我尝试用gdb在emacs里面debugging代码,通过Mx gdb,我尝试用下面的命令加载程序: gdb cat input.txt > myprogram -path "/home/user/work" 但是,gdb不喜欢它。 问题从这里 cri手</s>脚。 不幸的是,我不明白的解决scheme,不知道除了用-g选项编译和运行命令MX GDB之外该怎么办。