我已经成功地在"Linux 18.3 Sylvia“上建立了gdb-8.0.1 .效果很好。
GNU gdb (GDB) 8.0.1
Copyright (C) 2017 Free Software Foundation, Inc.
...
This GDB was configured as "x86_64-pc-linux-gnu".
现在尝试用TUI支持重新编译。另外安装
libncurses5-dev and libncursesw5-dev
还不能使gdb与tui相支持。
./configure --enable-tui=yes
make
configure:
我运行的是gdb GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-51.el7版本。我的TUI模式是无缝工作的。突然,现在它在发出命令layout src时给出了错误"TUI mode not allowed"。当我尝试使用-tui选项运行gdb时,gdb立即使用"TUI mode not allowed"退出。
*作为新问题被问到,因为没有其他线程可以提供帮助。
有一个程序我通常使用-t运行,就像在./program -t中一样,但是当我运行gdb ./program -t时,它说
gdb: option '-t' is ambiguous; possibilities: '-tui' '-tty'
Use `gdb --help' for a complete list of options.
我也尝试过gdb --args ./program -t,但是它也不起作用(不返回这样的文件或目录)。有办法在gdb中用-t运行这个程序吗?
首先,我想指出,我没有C编程背景,所以一个更详细的答案将对我有很大帮助。我从mp3下载了一个C 解码器项目,为了理解mp3压缩算法中的一些步骤,我需要对它进行调试。
我从不同的教程中学习了GDB的基础知识,所以我从使用所包含的Makefile编译项目开始,然后运行GDB对编译后的输出进行如下操作:
gdb --args mp3decode test.mp3
但是,当试图列出设置断点的文件时,我得到如下信息:
(gdb) list
init.c:1: No such file or directory.
在Googling上搜索一下上面的输出,编译时最常见的错误是没有使用-g选项,但是我确保这个
为什么gdb显示程序在启动期间退出,而在主函数的第一个断点停止之前呢?
一些步骤:
$ gdb --cd $programhome -tui -tty $reservedtty --args myprogram
b main
r
全球开发银行显示:
Starting program: myprogram
During startup program exited with code 1.
我已经尝试中断了exit()函数,但没有成功。
我是Vim用户,对Emacs不太了解。我对Emacs很感兴趣,因为我发现Emacs中的调试更令人愉快。例如,它提供语法高亮显示,我可以用鼠标设置断点。
除了遇到printf之外,一切都运行得很好。
简单的说明代码:
1 #include <stdio.h>
2
3 int main()
4 {
5 int a = 1;
6 printf("%d\n", a);
7 int b = 2;
8 return 0;
9 }
emacs main.c
左键单击下半部
M
(gdb) b 6
(gdb) r
到目前为止,源代码显示在上半部分,
我检查了gdb源代码,并成功地用MinGW编译。当我运行输出文件gdb.exe时,我不能输入任何东西,任何键按都会导致它退出:
aj@TERRAN E:\
$ gdb --data-directory=E:\gdb_build\gdb\gdb-7.11\gdb\data-directory
GNU gdb (GDB) 7.11
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
T
我使用kgdb通过串行电缆调试一些东西,所以我在gdb中设置了remote /dev/ttyS1,这给了我通过gdb从远程机器输出的信息。
有没有办法将输出重定向到文件而不重定向gdb的其余输出?它也不允许我启用TUI。我在用:
set logging file ~/gdb_output.log
set logging overwrite on
set logging redirect on
set logging on
谢谢!
串口是否来自我的目标机器,以及gdb是否使用stdout输出?什么使用stdin,什么使用stdoutm,什么使用stderr?
我正在Windows上运行Eclipse,以开发在远程Linux系统上构建和测试的C代码。目前,该代码从未在Windows上编译过。
我能够使用CDT在gdbserver下在Linux目标上开始远程进程,然后从Windows主机附加gdb。但是,gdb立即失败,错误如下:
warning: A handler for the OS ABI "GNU/Linux" is not built into this configuration
of GDB. Attempting to continue with the default i386 settings.
[...]
Re
我需要在调试会话中,查看和操作C程序的一些全局变量。我已经尝试过gcc的一些选择,但到目前为止,我还没有成功地看到(打印)至少我的全局变量。
GDB总是说:没有符号“??”在目前的情况下。
我应该用什么旗帜和gcc一起编纂来做这件事呢?
我的样本:
#include <stdio.h>
/* Some vars to see in debug */
static long gvar = 0L;
int othervar=3;
char* onepointer=NULL;
int main() {
long lvar=gvar;
gvar = 1L;
l
我用MSYS2 MINGW64编译器构建了neovim 。它建造得很棒。但是构建脚本强制我从一个普通的shell (cmd/pwsh)构建它。 # These are native MinGW builds, but they use the toolchain inside
# MSYS2, this allows using all the dependencies and tools available
# in MSYS2, but we cannot build inside the MSYS2 shell. 因为它是从Windows外部构建的,所以可执行文件中的调试信息被设置为本