Home

Awesome

<h1 align="center">termfu</h1>

A multi-language debugger frontend for the Linux terminal

<br> <p align="center"><img margin-left="auto" src="./misc/layout1.png"></p> <br>

Support

DebuggerLanguages
GDBC, C++, D, Go, Objective-C, Fortran, OpenCL C, Pascal, Rust, assembly, Modula-2, Ada
PDBPython
<br>

Installation

Dependencies

Ubuntu:

sudo apt-get install make gcc libncurses-dev gdb python3

Fedora:

sudo dnf install make gcc ncurses-devel gdb python3

Build and install

make
sudo make install
<br>

Usage

termfu
termfu -c .termfu_01 -p .termfu_01_data

Configuration

Example .termfu configuration


[ command ]

gdb --interpreter=mi --quiet test_programs/hello

[ plugins ]

# header commands
AtP : A : (A)ttach
Con : c : (c)ontinue
Fin : f : (f)inish
Kil : k : (k)ill
Lay : l : (l)ayouts
Nxt : n : (n)ext
Prm : m : pro(m)pt
Qut : q : (q)uit
Run : r : (r)un
Stp : s : (s)tep
Unt : u : (u)ntil

# windows
Asm : a : (a)ssembly
Brk : b : (b)reakpoints
Dbg : d : (d)ebug out
LcV : v : local (v)ars
Prg : p : (p)rogram out
Reg : g : re(g)isters
Src : o : s(o)urce file
Stk : t : s(t)ack
Wat : w : (w)atch


[ layout : Main ]

>h
mlq
rnscufk

>w
bbbooooo
wwwooooo
vvvooooo
ttpppddd

[ layout : Assembly / Registers ]

>h
mlq
rnscufk

>w
oag
oag
oag
wdt

<br>

Resulting layouts

<img src='./misc/layout1.png'> <img src='./misc/layout2.png'> <br>

Command

[ command ]

gdb --quiet --interpreter=mi misc/vars

DebuggerCommand
GDBgdb --interpreter=mi my_prog
PDBpython -m pdb app.py
<br>

Plugins

[ plugins ]

# <plugin code> : <key binding> : <title>

AtP : A : (A)ttach
Con : c : (c)ontinue

<br>

Header Commands <br>

CodeDescriptionGDBPDB
AtPAttach to PID, file:heavy_check_mark:
ConContinue:heavy_check_mark::heavy_check_mark:
FinFinish:heavy_check_mark::heavy_check_mark:
KilKill:heavy_check_mark::heavy_check_mark:
LayChoose layout:heavy_check_mark::heavy_check_mark:
NxtNext:heavy_check_mark::heavy_check_mark:
PrmDebugger prompt:heavy_check_mark::heavy_check_mark:
QutQuit:heavy_check_mark::heavy_check_mark:
RunRun, reload program:heavy_check_mark::heavy_check_mark:
StpStep:heavy_check_mark::heavy_check_mark:
UntUntil:heavy_check_mark::heavy_check_mark:
<br>

Windows <br>

CodeDescriptionGDBPDB
AsmAssembly code:heavy_check_mark:
BrkBreakpoints:heavy_check_mark::heavy_check_mark:
DbgDebugger output:heavy_check_mark::heavy_check_mark:
LcVLocal variables:heavy_check_mark::heavy_check_mark:
PrgProgram output:heavy_check_mark::heavy_check_mark:
RegRegisters:heavy_check_mark:
SrcSource file:heavy_check_mark::heavy_check_mark:
StkStack:heavy_check_mark::heavy_check_mark:
WatWatchpoints:heavy_check_mark::heavy_check_mark:
<br>

Layouts

[ layout : Main ]

>h
mlqrns
cufk

>w
eeeooooo
wwwooooo
vvvooooo
TTpppddd

Contributing

General Guidelines

Developer notes

<br><br>