问题标签 [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.
c++ - GDB 步骤 (in) 不适用于 std::string
使用 GDB (CGDB) 我可以进入 C++ 标准库容器的代码,例如std::vector
or std::set
,但不是std::string
. 有谁知道为什么?我可以以某种方式启用它吗?我正在使用 Ubuntu 20.04。
例如,用 编译上面的代码后g++ -g debug.cpp
,我可以进入std::vector
andstd::set
构造函数(以及基类构造函数等),但不能进入std::string
.
linux - cgdb 向终端产生噪声输出符号
cgdb
在终端打印这些符号:[32m
<some string>
[m
.
执行此操作的是程序的“gdb”部分。“cgdb”部分(或您命名的窗口)以颜色打印到终端。我已经cgdb
从Linux Mint
软件包存储库安装并希望它运行良好。
如何从中删除“噪音”输出cgdb
?
linux - CGDB:如何水平滚动 GDB 窗口?
我记得 CGDB 能够在它的 GDB 窗口中换行,但是在客户端的机器上,我几乎无法控制它,它只会剪掉所有不适合的东西——而在同一台机器上,纯 GDB 会换行.
我知道有问题的 GDB 窗口可以使用 PgUp/PgDn 垂直滚动,但问题是我无法查看 long std::string
-s 的内容或查看类方法的全名。
那么,我该如何水平滚动它——或者恢复正常的换行模式呢?
PS:set width <any number>
从 GDB 窗口中似乎没有帮助,被完全忽略;show width
,当在之前调用时set width
,输出 4 个字符后的值:
[UPD:]经过进一步调查,这看起来像是一个 CGDB 错误;修复(或仅仅是一种解决方法,如果没有 CGDB 开发人员审查就无法判断)就在这里。
gdb - htobe64 函数禁用调试器列出源代码的能力
我已经编译了非常简单的程序
当我使用 cgdb 调试它时,我得到以下信息:
但是当我取消注释该行时// val = htobe64(val)
,会发生一些奇怪的事情:
取消注释这一行会导致 cgdb 开始显示初始屏幕,当我start
在屏幕截图中键入时,它只会给我汇编代码(在 cgdb 开始直接显示源代码而不是它的初始屏幕之前)。此外,文件路径以某种方式/home/user/byteswap.h
出现在屏幕截图中,但该文件不存在(在此示例user
中是我的用户名和/home/user
我的工作目录)。
有人可以告诉我这里发生了什么以及我可以做些什么来调试正在调用的程序htobe64
,即如何实现该 cgdb 将向我显示顶部的第一个示例中的源代码?
以下是工具版本: