Frage

Bitte nicht antworten soll ich ddd, Nemiver, Emacs, Vim oder anderes Front-End verwenden, ich gdb gerade bevorzugen, wie es ist, möchte aber seine Ausgabe mit einigen Terminal Farben sehen.

War es hilfreich?

Lösung

.gdbinit

Sie können Ihre ~/.gdbinit zwicken Farben zu haben. Sie können Mammon .gdbinit verwenden, die hier zur Verfügung:

https://github.com/gdbinit/gdbinit

Sie können es zwicken so viel wie Sie wollen auch. Ich fand diese dank diese SO beantworten . Hier ist die Art der Ausgabe, die Sie erhalten können:

gdbinit

Ein GitHub-Repository ist ebenfalls verfügbar: https://github.com/gdbinit/Gdbinit

Auf einer Seite zur Kenntnis, war die gleiche Idee auch angewandt LLDB.

GDB Armaturenbrett

Nach dem gleichen Konzept, GDB-Dashboard für GDB in Python eine modulare optische Schnittstelle bietet .

 GDB-Dashboard

(void) walker

Ein weiteres ähnliches Projekt verwendet Python GDB Unterstützung mehr Dehnbarkeit zu schaffen, so ist dies lohnt sich: https: // Github .com / dholm / Voidwalker

@dholm stellt auch seine eigene .gdbinit von der vorherigen inspiriert.

(void) walker

pwndbg

Einige Projekte bieten eine Reihe von nützlichen Funktionen, darunter verbesserte Anzeige. Dies ist der Fall für PEDA oder pwndbg . Dieser gibt die folgende Beschreibung:

  

Ein PEDA Ersatz. Im Geiste unserer guten Freund windbg ist pwndbg ausgeprägt pwnd-bag.

     
      
  • Geschwindigkeit
  •   
  • Resiliency
  •   
  • Sauberer Code
  •   

Es enthält Befehle Debuggen zu unterstützen und die Entwicklung ähnlich denen von PEDA zu nutzen und eine bessere Anzeige (obwohl dies nicht der Schwerpunkt des Projekts ist). Die Software ist noch in der Entwicklung und ist noch nicht richtig freigegeben.

 pwndbg

voltron

Das Projekt Beschreibung heißt es:

  

Voltron ist eine erweiterbare Debugger UI für Hacker. Es ermöglicht Ihnen,   befestigen Dienstprogramm Ansichten in anderen Terminals zu Ihrem Debugger ausgeführt wird (LLDB   oder GDB), hilfreiche Informationen wie Demontage anzeigt, Stapel   Inhalte, Registerwerte, etc., während Sie immer noch die gleiche geben   Debugger CLI Sie verwendet.

Sie können Ihre .gdbinit ändern, um automatisch zu integrieren. Jedoch selbst die Anzeige außerhalb der GDB ist (beispielsweise in einem TMux split).

 Voltron

GEF

GEF ist eine weitere Option, und es wird beschrieben, wie:

  

Es richtet sich vor allem von Ausbeutern verwendet werden und Reverse-Ingenieure, um   bieten zusätzliche Funktionen GDB den Python-API zu unterstützen   während des Prozesses der dynamischen Analyse und Nutzung Entwicklung.

 GEF

Andere Tipps

Es ist nicht Farben, sondern betrachten Text gui der GDB. Es macht einen großen Unterschied, wie verwendbar GDB ist.

Sie können starten Sie es mit:

gdb -tui executable.out

Screenshot:

eingeben Bild Beschreibung hier

Wie Sie sehen können, sind die wichtigsten Merkmale:

  • zeigt, welche Linie der Quelle sind wir auf und die umliegenden Linien
  • zeigt Stützpunkte

Ich weiß, dass Sie nicht ein Frontend wollen. Aber wie wäre es cgdb es zu gdb ganz in der Nähe ist, es ist aber ein Textmodus Quelle Fenster oben mit Syntaxhervorhebung auf dem Code hat.

Es ist möglich, stark die erscheint den GDB durch die Verwendung von Farben zu verbessern. Dies geschieht über eine der folgenden Methoden erfolgen:

  1. Colorized prompt über die "set prompt". Zum Beispiel, um die Eingabeaufforderung fett und rot:

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

    oder die Aufforderung eine neue Form machen, fett und rot:

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

  2. Färben Befehle über Haken

  3. Färbte Syntax-Hervorhebung der "Liste" Befehl.

Alle Beispiele sind in den folgenden Blog-Beiträge verfügbar geschrieben von Michael Kelleher:

"Verschönern GDB", Mai 12, 2010 (über archive.org)

"Experimental GDB Syntaxhervorhebung" , 15. Mai 2010 (via archive.org)

#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 

Achtung: Buggy. Keine TUI Unterstützung, 'user-mode' hacken.

Gefunden der Hauptteil hier und modifiziert es ein wenig. Benötigt Highlight, c ++ filt. Wenn die Farben erhalten verkorkste Problem re-Befehl.

cgdb ist viel besser als gdb -tui

Ordentlich, ich habe gerade diesen Hack mit colout: https: / /github.com/nojhan/colout/blob/master/colout/example.gdbinit

vorher - nachher

wollte ich hervorheben, wie folgt: betonen die Linien eines Stack-Trace, die zu meiner Quelldateien gehören (statt Bibliotheken)

.

Die Lösung war GDB-Python zu verwenden (auf MSYS,? Auf Linux normalerweise gdb mit Python integriert, in dem bereits), Haken backtrace, verwenden Sie

python stack_trace = gdb.execute('backtrace', False, True')

Dann Prozess stack_trace mit Pythons reguläre Ausdrücke und ausdrucken. Bold und andere Farben durch eine Funktion wie folgt erreicht werden:

def term_style(*v):
    """1 is bold, 30--37 are the 8 colours, but specifying bold may also
    change the colour. 40--47 are background colours."""
    return '\x1B['+';'.join(map(str, v))+'m'

#Use like this:
print term_style(1) + 'This will be bold' + term_style(0) #Reset.
print term_style(1,30) + 'This will be bold and coloured' + term_style(0)
print term_style(1,30,40) + 'Plus coloured background' + term_style(0)

Eine weitere gute Kombination von Farben ist gegeben durch diese Konfiguration . Sie machen die Inspektion die Backtraces viel einfacher. Um es zu nutzen, speichern Sie die Datei als ~/.gdbinit und führen Sie gdb normalerweise

Neu in der kommenden GDB 8.3!

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

  

Terminal Styling ist jetzt für die CLI und die TUI zur Verfügung. GNU Source   Highlight kann zusätzlich verwendet werden, Styling des Quellcodes zur Verfügung zu stellen   Schnipsel. Siehe „Set-Stil“ -Befehle, unten, für weitere Informationen.

Sie können bekommen, was Farben, die Sie wünschen;

# gdb
(gdb) shell echo -en '\E[47;34m'"\033[1m"
...
anything is now blue foreground and white background
...
(gdb) shell tput sgr0
... back to normal
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top