All Projects → vuvova → Gdb Tools

vuvova / Gdb Tools

Licence: bsd-3-clause
Various tools to improve the gdb experience

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Gdb Tools

Gef
GEF (GDB Enhanced Features) - a modern experience for GDB with advanced debugging features for exploit developers & reverse engineers ☢
Stars: ✭ 4,197 (+3897.14%)
Mutual labels:  gdb
Awesome Cheatsheets
超级速查表 - 编程语言、框架和开发工具的速查表,单个文件包含一切你需要知道的东西 ⚡
Stars: ✭ 7,930 (+7452.38%)
Mutual labels:  gdb
Avalonstudio
Cross platform IDE and Shell
Stars: ✭ 1,132 (+978.1%)
Mutual labels:  gdb
Hyperpwn
A hyper plugin to provide a flexible GDB GUI with the help of GEF, pwndbg or peda
Stars: ✭ 387 (+268.57%)
Mutual labels:  gdb
Rr
Record and Replay Framework
Stars: ✭ 6,469 (+6060.95%)
Mutual labels:  gdb
Pince
A reverse engineering tool that'll supply the place of Cheat Engine for linux
Stars: ✭ 987 (+840%)
Mutual labels:  gdb
Nvim Gdb
Neovim thin wrapper for GDB, LLDB, PDB/PDB++ and BashDB
Stars: ✭ 341 (+224.76%)
Mutual labels:  gdb
Libcxx Pretty Printers
GDB Pretty Printers for libc++ of Clang/LLVM
Stars: ✭ 89 (-15.24%)
Mutual labels:  gdb
Inspector
A drop-anywhere C++ REPL
Stars: ✭ 767 (+630.48%)
Mutual labels:  gdb
Gdbshellpipe
Enable piping of internal command output to external commands
Stars: ✭ 60 (-42.86%)
Mutual labels:  gdb
Lldb
Project moved to: https://github.com/llvm/llvm-project
Stars: ✭ 412 (+292.38%)
Mutual labels:  gdb
Voltron
A hacky debugger UI for hackers
Stars: ✭ 5,599 (+5232.38%)
Mutual labels:  gdb
Gdbgui
Browser-based frontend to gdb (gnu debugger). Add breakpoints, view the stack, visualize data structures, and more in C, C++, Go, Rust, and Fortran. Run gdbgui from the terminal and a new tab will open in your browser.
Stars: ✭ 8,339 (+7841.9%)
Mutual labels:  gdb
Dlangide
D language IDE based on DlangUI
Stars: ✭ 358 (+240.95%)
Mutual labels:  gdb
Gdbprofiler
Rich man's profiler, a profiler for native OCaml and other executables
Stars: ✭ 75 (-28.57%)
Mutual labels:  gdb
Pwndbg
Exploit Development and Reverse Engineering with GDB Made Easy
Stars: ✭ 4,178 (+3879.05%)
Mutual labels:  gdb
Android Unpacker
Android Unpacker presented at Defcon 22: Android Hacker Protection Level 0
Stars: ✭ 944 (+799.05%)
Mutual labels:  gdb
Gdb Static
Public repository of static GDB and GDBServer
Stars: ✭ 103 (-1.9%)
Mutual labels:  gdb
Neogdb.vim
## Project deprecated in favor of: new.vim + new-gdb.vim
Stars: ✭ 78 (-25.71%)
Mutual labels:  gdb
Gdbstub
A simple, dependency-free GDB stub that can be easily dropped in to your project.
Stars: ✭ 56 (-46.67%)
Mutual labels:  gdb

gdb-tools

This repository contains various tools used to make the time spent in gdb more comfortable.

To install these tools, first install the modules with

pip install gdb-tools

or with easy_install or python setup.py install [--user].

Then you need to import corresponding modules into your gdb. Add, for example,

py import duel

into your ~/.gdbinit. If you plan to use pretty_printer module, I'd recommend to put all your python gdb enhancements in ~/.gdb.py and source it from ~/.gdbinit.

pretty_printer.py

A convenience helper to write gdb pretty-printers. Import this module and write new pretty printers as easy as

from pretty_printer import PrettyPrinter

@PrettyPrinter
def st_bitmap(val):
    s=''
    for i in range((val['n_bits']+31)//32):
        s = format(int(val['bitmap'][i]), '032b') + s
    return "b'" + s[-int(val['n_bits']):] + "'"

Here val is a gdb.Value object to print, and st_bitmap is the type to pretty-print (alternatively, a type can be passed to the decorator as an argument, useful for types that aren't valid Python identifiers). If the type has a name, either typedef'ed name or the underlying actual type can be used in the pretty printer definition (useful, for types like typedef int set_of_flags). Pointers are resolved automatically:

(gdb) p map
$1 = b'001010111'
(gdb) p &map
$1 = (st_bitmap *) 0x7fff8610 b'001010111'

Import this module into your ~/.gdb.py and create your own pretty printers there.

DUEL — Debugging U (might) Even Like

A high level language for exploring various data structures. Created by Michael Golan in 1993, who implemented it for gdb 4.x. "Insanely cool", according to gdb developers. This is DUEL.py — a pure python implementation that uses gdb Python API and the Arpeggio parser. Install arpeggio (or copy it into duel/ — it's only 20K) and import duel into your ~/.gdb.py. Few examples of what DUEL can do:

Command Explanation
dl ? short help
dl x[10..20,22,24,40..60] display x[i] for the selected indexes
dl x[9..0] display x[i] backwards
dl x[..100] >? 5 <? 10 display x[i] if 5<x[i]<10
dl val[..50].(is_dx ? x : y) val[i].x or val[i].y depending on val[i].is_dx
dl x[i:=..100] >? x[i+1] check whether x[i] is sorted
dl (x[..100] >? 0)[[2]] return the 3rd positive x[i]
dl argv[0..]@0 argv[0], argv[1], etc until first null
dl emp[0..]@(code==0) emp[0], emp[1], etc until emp[n].code==0
dl head-->next->val val of each element in a linked list
dl head-->(left,right)->val val of each element in a binary tree
dl head-->next[[20]] element 20 of list
dl #/head-->next count elements on a linked list
dl #/(head-->next-val>?5) count those over 5
dl head-->(next!=?head) expand cyclic linked list

Or read the manual.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].