当前位置:  开发笔记 > 编程语言 > 正文

如何在交互式调试期间突出显示和着色gdb输出?

如何解决《如何在交互式调试期间突出显示和着色gdb输出?》经验,为你挑选了8个好方法。

请不要回复我应该使用ddd,nemiver,emacs,vim或任何其他前端,我只是喜欢gdb,但希望看到它的输出带有一些终端颜色.



1> BenC..:
.gdbinit

你可以调整你的~/.gdbinit颜色.您可以使用以下.gdbinit可用的mammon :

https://github.com/gdbinit/gdbinit

您可以根据需要调整它.我发现这要归功于这个答案.这是您可以获得的输出类型:

.gdbinit

GitHub存储库也可用:https://github.com/gdbinit/Gdbinit

另外,同样的想法也适用于lldb.

GDB仪表板

遵循相同的概念,GDB Dashboard为Python中的GDB提供了模块化可视化界面.

GDB仪表板

(空隙)步行者

另一个类似的项目使用GDB的Python支持来提供更多的可扩展性,因此值得一试:https://github.com/dholm/voidwalker

@dholm还提供了自己的.gdbinit,灵感来自前一个.gdbinit.

(空隙)步行者

pwndbg

一些项目提供了一组有用的功能,包括改进的显示.PEDA或pwndbg就属于这种情况.后者给出了以下描述:

PEDA替代品.在我们的好朋友的精神windbg,pwndbg发音pwnd-bag.

速度

弹性

清洁代码

它提供了支持调试和利用开发的命令,类似于PEDA的开发,并且更好地显示(尽管这不是项目的主要焦点).该软件仍在开发中,尚未正确发布.

pwndbg

战神金刚

该项目的说明中指出:

Voltron是黑客可扩展的调试器UI.它允许您将在其他终端中运行的实用程序视图附加到调试器(LLDB或GDB),显示有用的信息,如反汇编,堆栈内容,寄存器值等,同时仍然提供您习惯使用的相同调试器CLI.

您可以修改.gdbinit自动集成它.但是,显示器本身位于GDB之外(例如,在tmux拆分中).

战神金刚

GEF

GEF是另一种选择,它被描述为:

它主要由开发人员和逆向工程师使用,使用Python API为GDB提供额外的功能,以便在动态分析和利用开发过程中提供帮助.

GEF



2> John Carter..:

这不是颜色,但考虑gdb的文字gui.它对gdb的可用性有很大的不同.

你可以用以下方式启动它:

gdb -tui executable.out

截图:

在此输入图像描述

如您所见,主要功能包括:

显示我们所在的源线和周围的线

显示断点


Ctrl-x Ctrl-a:输入此项以切换到文本gui模式,即使没有命令行选项也可以.
哇!谢谢!我一直在寻找一个很好的图形shell围绕gdb,我已经尝试过xxgdb,kgdb和ddd,但它们都没有对我有用,所以我坚持使用普通的旧命令行界面.但这绝对是完美的!

3> Johan..:

我知道你不想要一个前端.但是cgdb如何与gdb非常接近,它是textmode但是上面有一个源窗口,代码中有语法高亮显示.


sudo apt-get install cgdb
一个真正的意外发现:)

4> Mike..:

通过使用颜色可以大大增强gdb的出现.这可以通过以下任何方法完成:

    通过"设置提示"进行彩色提示.例如,将提示符设为粗体和红色:

    set prompt \033[1;31m(gdb) \033[m

    或者提示一个新的形状,粗体和红色:

    set prompt \033[01;31m\n\n#####################################> \033[0m

    在此输入图像描述

    通过钩子着色命令

    "list"命令的彩色语法高亮显示.

所有示例都可以在Michael Kelleher撰写的以下博客文章中找到:

"Beautify GDB",2010年5月12日(通过archive.org)

"实验性GDB语法突出显示",2010年5月15日(通过archive.org)


链接坏了.
@Mike:在这里发布这些链接的内容会很有用,因为该网站不再可访问,robots.txt阻止了archive.org对其进行索引.

5> ftk..:
#into .gdbinit
shell mkfifo /tmp/colorPipe

define hook-disassemble
echo \n
shell cat /tmp/colorPipe | c++filt | highlight --syntax=asm -s darkness -Oxterm256 &
set logging redirect on
set logging on /tmp/colorPipe
end 

define hookpost-disassemble
hookpost-list
end 

define hook-list
echo \n
shell cat /tmp/colorPipe | c++filt | highlight --syntax=cpp -s darkness -Oxterm256 &
set logging redirect on
set logging on /tmp/colorPipe
end 

define hookpost-list
set logging off 
set logging redirect off 
shell sleep 0.1s
end 

define hook-quit
shell rm /tmp/colorPipe
end 

define re
hookpost-disassemble
echo \033[0m
end 
document re
Restore colorscheme
end 

警告:越野车.没有TUI支持,'用户模式'黑客.

在这里找到主要部分 并对其进行了一些修改.需要突出,c ++ filt.如果颜色搞砸了问题re.



6> 小智..:

cgdb 好多了 gdb -tui



7> elmarco..:

整洁,我刚刚使用colout发现了这种黑客攻击:https : //github.com/nojhan/colout/blob/master/colout/example.gdbinit



8> elmarco..:

New in upcoming GDB 8.3!

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob;f=gdb/NEWS

Terminal styling is now available for the CLI and the TUI. GNU Source Highlight can additionally be used to provide styling of source code snippets. See the "set style" commands, below, for more information.

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有