【问题标题】:debugging gdb tui define new layout调试 gdb tui 定义新布局
【发布时间】:2020-05-04 13:06:36
【问题描述】:

我正在尝试为 gdb tui 模式定义一个自己的新布局(根据https://sourceware.org/gdb/current/onlinedocs/gdb/TUI-Commands.html#TUI-Commands,但每次我输入示例(tui new-layout example src 1 regs 1 status 0 cmd 1)时都会收到此错误:Undefined tui command: "new-layout example src 1 regs 1 status 0 cmd 1". Try "help tui".

任何建议,可能有什么问题(输入命令时我已经处于 TUI 模式 (tui enable))?

【问题讨论】:

    标签: debugging gdb


    【解决方案1】:

    我遇到了和你一样的问题。尽管文档显示了该功能,但 9.1 中似乎没有该功能。

    我尝试构建 GDB 快照版本 10.0.50.20200305-git,它具有 tui new-layout 功能。

    您可以在此处找到快照版本: ftp://sourceware.org/pub/gdb/snapshots/current/

    这是我所做的:

    cd ~/src
    tar xf gdb-10.0.50.20200306.tar.xz
    mkdir gdb
    cd gdb
    ~/src/gdb-10.5.50.20200306/configure --enable-tui
    make
     ~/src/gdb/gdb/gdb  --version
    GNU gdb (GDB) 10.0.50.20200306-git
    

    然后我只是在一个可执行文件上从 ~/src/gdb 运行 gdb。 我可以这样做

    tui new-layout example regs 19 src 21 cmd 20
    

    但是,重新启动 gdb 后它并没有持续存在。 但是如果我不退出,我可以切换到它。

    layout asm
    layout regs
    layout example
    

    不确定布局是否应该在退出和启动后保持不变?

    【讨论】:

    • 据我所知,这个布局不是持久化的,但是你可以把这些命令放到你的~/.gdbinit ;)
    • 我的快照有点小问题,我收到以下错误消息:elf.c:740:35: error: overflow in conversion from ‘unsigned int’ to ‘int’ changes value from ‘num_group = 4294967295’ to ‘-1’ [-Werror=overflow] 740 | elf_tdata (abfd)->num_group = num_group = -1; 但它只是一个快照,所以我想知道它需要多长时间才能在正式版也是。
    • 而且,我刚刚检查了我的本地 gdb 文档 (info gdb),并且没有创建自己的布局的段落,所以我想我只需要等待或等待获得新的快照工作。
    • 新版本发布可能只是时间问题。不确定您遇到的错误。我必须安装一些依赖项才能使我的构建工作(libncurses-dev libncursesw5-dev 和 libconfig-dev)。
    • 嗯,好吧,也许我会再试一次,提前检查依赖关系,但是因为我在 Arch Linux 上,我有很多新的包,所以很快就会得到更新版本(取决于 gdb 开发团队发布它需要多长时间)
    猜你喜欢
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多