标签: cgdb

如何在cgdb中滚动gdb窗口?

在使用cgdb时,如何滚动输出在gdb窗口中可见的输出?

cgdb

15
推荐指数
1
解决办法
6806
查看次数

如何使用TUI或CGDB在GDB中使用颜色?

我通过将此行添加到以下内容为GDB提示设置了颜色~/.gdbinit:

set prompt \033[0;32m(gdb) \033[0m
Run Code Online (Sandbox Code Playgroud)

这在GDB中工作正常,直到我打开TUI.然后丢弃颜色并显示原始颜色代码.如果我使用CGDB,也会发生同样的事情.

这是2015年.有没有什么方法可以在GDB中同时使用这两种颜色,还可以查看我在终端的子窗口(如TUI/CGDB)中调试的源代码?

gdb tui colors cgdb

9
推荐指数
1
解决办法
2306
查看次数

python异常<type'exception.ImportError'>没有名为gdb的模块:

我刚刚gdb 7.8在运行linux的服务器机器上从我的主目录中的源代码编译.我以前一直在使用gdb 7.6,除了gdb自身的稳定性问题(升级的原因)一切正常.

自升级以来gdb,当我运行时,cgdb 0.6.7我立即得到以下消息:

Python Exception <type 'exceptions.ImportError'> No module named gdb:

warning:
Could not load the Python gdb module from `/home/username/bin/gdb//python'.
Limited Python support is available from the _gdb module.
Suggest passing --data-directory=/path/to/gdb/data-directory.
Run Code Online (Sandbox Code Playgroud)

当我建造时gdb,我使用了./configure --with-python.

当我运行cgdb并且我的程序达到段错误时,我输入backtrace并获得以下消息:

Python例外没有名为gdb.frames的模块:

所以看起来我实际上无法使用gdb/ cgdb没有python支持.我该怎么做才能解决这个问题?

FWIW; 我不用python,我经常写c++.

python gdb cgdb

8
推荐指数
2
解决办法
1万
查看次数

如何让cgdb显示汇编代码?

我找不到cgdb反汇编二进制文件的方法,并在代码窗口中显示当前指令的汇编代码.这是可能的,我应该使用什么命令?我正在使用Mac OS X并从自制软件库获取cgdb.

macos assembly gdb disassembly cgdb

7
推荐指数
2
解决办法
2498
查看次数

在malloc.c中的SIGABRT,刚刚发生了什么?

我写了这段无辜的代码,导致了这样一个邪恶的错误:

static char * prefixed( char * pref, char *str ) {
    size_t newalloc_size = sizeof(char) * (strlen(pref) + strlen(str));
    char * result = (char*) malloc( newalloc_size );
    [...]
Run Code Online (Sandbox Code Playgroud)

debug(cgdb)的输出:

Breakpoint 1, prefixed (pref=0x401345 "Env: ", str=0x4012b5 "Home") at ./src/backend/os/env.c:77
(gdb) s
(gdb) p newalloc_size 
$1 = 9
(gdb) s
envtest: malloc.c:2368: sysmalloc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >=
(unsigned long)((((__builtin_offsetof …
Run Code Online (Sandbox Code Playgroud)

c malloc runtime-error sigabrt cgdb

7
推荐指数
1
解决办法
1万
查看次数

在GDB中执行行

我可以通过在GDB中放置一个断点,然后按c继续执行,来执行GDB中的特定行。

b <line_number> ; insert breakpoint
c ; run up to the breakpoint
del <breakpoint_number> ; remove breakpoint
Run Code Online (Sandbox Code Playgroud)

是否有命令可以运行到特定的行号,从而避免了必须运行上述命令序列?

gdb cgdb

5
推荐指数
1
解决办法
1739
查看次数

gdb日志文件格式

当我set logging on在gdb中使用时,日志文件的输出格式与我在终端屏幕上看到的格式不同.日志文件不是很易读.如何以可读格式获取日志文件?

输出到屏幕很好:

(gdb) p foo
$1 = {
  static npos = 18446744073709551615,
  _M_dataplus = {
    <std::allocator<char>> = {
      <__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
    members of std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider:
    _M_p = 0x601028 "Hello World!\n"
  }
}
Run Code Online (Sandbox Code Playgroud)

输出到日志文件的可读性不高:

^Z^Zpost-prompt

^Z^Zbreakpoints-headers

^Z^Zfield 0
Num     
^Z^Zfield 1
Type           
^Z^Zfield 2
Disp 
^Z^Zfield 3
Enb 
^Z^Zfield 4
Address            
^Z^Zfield 5
What

^Z^Zbreakpoints-table

^Z^Zrecord

^Z^Zfield 0
1       
^Z^Zfield 1
breakpoint     
^Z^Zfield 2
keep 
^Z^Zfield 3
y   
^Z^Zfield 4
0x0000000000400961 
^Z^Zfield …
Run Code Online (Sandbox Code Playgroud)

gdb cgdb

4
推荐指数
1
解决办法
1003
查看次数

进程在调试器中崩溃; 我怎么杀了它

我有一个C++应用程序,它通过USB串行链路连接到微处理器(类似于Arduino).我termios.h用作我的串行包装器.

cgdb在Mac OS X上调试使用10.7.3.

当我:

  • cgdb build/my-process
  • 设置一些断点等,做一些调试
  • 查找错误,或尝试使用内部退出仍在运行的进程killcgdb

这个过程挂了.cgdb拒绝杀死这个过程 - 只是坐在那里.我相当肯定,这是因为如果我kill从半途应用,我从来没有放开/dev/ttyUSB我通过访问微控制器设备.我不确定某些东西是否被锁定并且从未解锁,但cgdb永远不会退出.

我试过了:

  • 基本中断:Ctrl+C
  • ps aux | grep 'my-process',kill -9 [pid]`.
  • ps aux | grep cgdb,kill -9 [pid].
  • sudo 以上版本.

没有任何东西杀死它cgdb或在其中运行的进程.

如果我移除USB电缆(终止与微处理器的连接),(我认为可能会崩溃崩溃的过程),我开始看到~50%的可用CPU被使用(不确定是什么),一切都锁定了.我没有设法让应用程序崩溃.

你怎么了:(一)退出干净而不从上锁定一切cgdbgdb同时在调试过程中,或(b)杀/干净(虽然"干净"将只是锦上添花)停止也停掉的,而一个过程你正在调试它没有重新启动时没有响应?kill -9

macos gdb cgdb

2
推荐指数
1
解决办法
265
查看次数

标签 统计

cgdb ×8

gdb ×6

macos ×2

assembly ×1

c ×1

colors ×1

disassembly ×1

malloc ×1

python ×1

runtime-error ×1

sigabrt ×1

tui ×1