问题标签 [cgdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
466 浏览

c++ - 使用 cgdb 调试——只想调试我的代码

我正在使用标准模板库和 boost。我想使用 cgdb 调试代码。但是我只想在执行下一步并进入 cgdb 时调试我的代码,就像现在它进入其他库中的代码一样,而我希望它应该只返回或进入我已经编码和写下的代码。

有什么办法可以做到这一点。

0 投票
1 回答
1139 浏览

gdb - gdb 日志文件格式

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

输出到屏幕很好:

输出到日志文件不是很可读:

0 投票
2 回答
2587 浏览

linux - List all Processes & Threads under processes from Linux core dump using gdb

I am developing a scripting tool for gdb/linux core dump, where if I point script to core bump , it lists all stack traces of all threads under process i.e, what I am trying to achieve is pretty much gdb equivalent of windbg's !process 0 which dumps all the processes and threads with stack from dump.

Is there gdb equivalent of !process 0 ?

if Not

Whats the gdb command to list all the processes and list all threads under processes in gdb from core dump ?

This would enable me to write a script to loop over all pid's and tid's and get an backtrace which could be logged to an file?

Also suggestions on scripting language for this such as perl/python, the better one is welcome.

Thanks Ganesh

0 投票
3 回答
3570 浏览

macos - 如何让 cgdb 显示汇编代码?

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

0 投票
2 回答
491 浏览

macos - 进程在调试器中崩溃;我该如何杀死它

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

我正在使用cgdbMac OS X进行调试10.7.3

当我:

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

进程挂起。cgdb拒绝终止进程 - 只是坐在那里。我相当确定这是因为如果我kill从应用程序的中途开始,我永远不会释放/dev/ttyUSB我通过它访问微控制器的设备。我不确定是否有东西被锁定并且永远不会解锁,但cgdb永远不会退出。

我试过了:

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

没有什么会杀死cgdb或杀死其中运行的进程。

如果我移除 USB 电缆(终止与微处理器的连接),(我认为这可能会使崩溃的进程崩溃),我开始看到大约 50% 的可用 CPU 正在使用(不确定是什么),并且一切都锁定了。我没有设法使应用程序崩溃。

你如何:(a)干净地退出而不锁定所有内容,cgdb或者gdb在调试进程的过程中,或者(b)杀死/干净地(虽然“干净地”只是锦上添花)停止一个停止的进程,而您正在调试它没有重新启动就没有响应?kill -9

0 投票
1 回答
591 浏览

gdb - 将 cgdb 用于 ncurses c 应用程序

当我调试 ncurses 应用程序时,我通常会执行以下操作:

这将使 ncurses 应用程序在与 gdb 运行的终端不同的终端中运行。

最近我发现了 cgdb,我非常喜欢它。不幸的是,它似乎不尊重 --tty 选项。

有没有其他方法可以做到这一点?cgdb 人员如何调试 cgdb :) ?

谢谢。

0 投票
1 回答
508 浏览

gdb - GDB 加载不正确的库

我有两个不同版本的库,比如说 libxyz.so

在两个不同的位置

我有一个设置,可以编译我的程序并根据 LD_LIBRARY_PATH 链接到适当版本的库。例如,如果我想将我的程序与 libxyz 的 dev 版本链接,我将 LD_LIBRARY_PATH 更改为添加 /home/maverick/dev,如果我想与 prod 版本链接,我将 LD_LIBRARY_PATH 更改为添加 /home/maverick/prod。

我通过链接开发版本和输出来编译我的程序

如果我运行程序,它会从

并且运行良好。这一点我的 LD_LIBRARY_PATH 包括 /home/maverick/dev 而不是 /home/maverick/prod

但是当我尝试通过 GDB 调试这个程序时

它从位置加载 libxyz.so

我在调试期间无法让 GDB 加载正确版本的库。所以到目前为止,我正在做的是首先启动程序(加载开发版本)并将gdb附加到该PID,这样它就可以正常工作了。但如果它像

它没有

我尝试了所有方法来解决这个问题,比如在 GDB 中设置 sysroot、solib-search-path,但没有任何效果。如果事实上当我设置 sysroot 指向库 gdb 的调试版本时给出了一些类似的消息

任何建议将不胜感激。

0 投票
1 回答
8911 浏览

cgdb - 如何在 cgdb 中滚动 gdb 窗口?

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

0 投票
3 回答
15716 浏览

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

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

调试(cgdb)的输出:

我也检查了传递的参数。他们应该在哪里:

谁能想象,这里出了什么问题?我知道有将两个字符串组合在一起的功能,但我想自己做!

亲切的问候。

0 投票
2 回答
353 浏览

debugging - 跳转到 cgdb 中正在执行的当前行

是否可以跳转到源窗口中正在执行的当前行cgdb

有一个命令或快捷方式来执行此操作会很棒,尤其是在文件对话框模式下浏览文件很长时间之后。