gdb

    1热度

    2回答

    调试C程序下面是C代码: #include<stdio.h> int main() { int a[]={0,1,2,3,4}; int*p[]={a,a+1,a+2,a+3,a+4}; int**ptr=p; ptr++; printf("%d , %d ",*ptr-a , **ptr); *ptr++; print

    0热度

    1回答

    我想LLDB调试时知道互斥锁的主人,我在网上查的是GDB可以打印线程ID喜欢https://en.wikibooks.org/wiki/Linux_Applications_Debugging_Techniques/Deadlocks 然而,当我尝试这LLDB,里面互斥成员变量是不透明的,如: Process 76057 stopped * thread #1, queue = 'com.app

    1热度

    2回答

    的整个存储值我有一个对准的处理核心转储像 // ptr is boost::shared_ptr<Whatever> assert(ptr.unique()) 也就是说有两个shared_ptr引用同一个对象,但程序逻辑预计独占所有权。这是逻辑问题,而不是内存损坏。 使用gdb我可以看到指针的地址(例如0x0),包含在ptr中并验证它是use_count == 2。 使用的类似的东西hexd

    0热度

    1回答

    我想调试GDB本身并处理从另一个终端发送的Ctrl + C信号问题。 我以TUI模式在终端1上运行GDB进行调试。之后,我打开另一个终端2,并找到在终端1上运行的GDB的PID编号。然后将该进程附加到调试。 在终端1 $ build-gdb/gdb/gdb -tui ./build/output.elf -tty=$TTY 在终端2 $ ps -elf | less $ sudo gdb -

    1热度

    1回答

    我想知道如何使用QEMU和gdb调试Linux内核。我在我的虚拟机中编译了新的内核linux-3.18.6。我的VM环境是centos,内核版本是3.10.0-327.el7.x86_64。我使用命令“qemu-system-x86_64 -kernel /usr/src/linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S”来运行

    0热度

    1回答

    我正在使用kgdb模块和gdb调试linux内核。 当试图在某个地址设置断点时,gdb将它设置为另一个错误的地址。 (gdb) b *0xffffffff81528690 Breakpoint 1 at 0x81528690 任何人都知道为什么?

    1热度

    2回答

    我希望在我的macOS Sierra上的Eclipse IDE中为C/C++调试GNU Emacs。我使用Git下载了源代码,并通过命令行成功构建了项目。然后,我使用GNU autotools工具链设置将项目导入Eclipse作为现有的Makefile项目。 我现在可以从Eclipse运行Emacs GUI。然而,当我尝试调试它(使用gdb),我收到以下错误信息: 'Launching emacs

    1热度

    1回答

    我正在使用两台Linux虚拟机在Mac(VMWare Fusion)上调试Linux内核。 我已经安装kernel-debuginfo-3.10.0-327.36.3.el7.x86_64和debugStub的作品。 然后我添加了一个断点fchown系统调用,它打破了, Breakpoint 10, SYSC_fchown (group=0, user=0, fd=<optimized out>)

    0热度

    1回答

    今天当我在调试时使用gdb。我发现很奇怪的东西: print 0xC0 //192, correct print (char)0xC0 //-64 不使用电脑2的补码表示负数(这显然不是这种情况下)或者我根本失去了一些东西?

    2热度

    1回答

    我试图在BeagleBone Black上调试一个程序。在调试器外部,它会产生不正确的结果,但不会产生SIGILL。它也可以在没有断点的调试器下运行。然而,它产生一个SIGILL与步进时设置的断点。程序和库不使用基于SIGILL的cpu功能探测器。但是,我不知道GDB在做什么。 在调试器我看到: (gdb) b main Breakpoint 1 at 0x26f20: file test.cx