Round 297: Strace ext, Ltrace ext, Perf ext, Valgrind ext, GDB ext (20 commands)
ober
cefd3fd96c21d350e5ecd6030e4600bb709c52af
--- a/docs/jemacs-vs-emacs.md +++ b/docs/jemacs-vs-emacs.md @@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features | ebib-import-file | :orange_circle: | Import file into Ebib | | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer | +### Round 297 — Strace ext, Ltrace ext, Perf ext, Valgrind ext, GDB ext + +| Command | Status | Description | +|---------|--------|-------------| +| strace-attach | :orange_circle: | Attach strace to PID | +| strace-run | :orange_circle: | Run command under strace | +| strace-filter | :orange_circle: | Filter strace syscalls | +| strace-count | :orange_circle: | Count syscalls | +| ltrace-attach | :orange_circle: | Attach ltrace to PID | +| ltrace-run | :orange_circle: | Run command under ltrace | +| ltrace-filter | :orange_circle: | Filter ltrace calls | +| ltrace-library | :orange_circle: | Trace specific library | +| perf-stat | :orange_circle: | Perf stat counters | +| perf-record | :orange_circle: | Record perf data | +| perf-report | :orange_circle: | Show perf report | +| perf-top | :orange_circle: | Live perf profiling | +| valgrind-memcheck | :orange_circle: | Valgrind memcheck | +| valgrind-callgrind | :orange_circle: | Valgrind callgrind | +| valgrind-cachegrind | :orange_circle: | Valgrind cachegrind | +| valgrind-massif | :orange_circle: | Valgrind massif | +| gdb-attach | :orange_circle: | Attach GDB to PID | +| gdb-run | :orange_circle: | Run program in GDB | +| gdb-backtrace | :orange_circle: | Show GDB backtrace | +| gdb-breakpoint | :orange_circle: | Set GDB breakpoint | + ### Round 296 — Tcpdump ext, Tshark ext, Iftop ext, Nethogs ext, Vnstat ext, Iperf3 ext | Command | Status | Description | --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -22745,4 +22745,60 @@ (let* ((echo (app-state-echo app))) (echo-read-string echo "Server: " (lambda (srv) - (echo-message! echo (str "Iperf3: connecting to " srv)))))) \ No newline at end of file + (echo-message! echo (str "Iperf3: connecting to " srv)))))) + +;;; Round 297 — Perf ext, Valgrind ext, GDB ext (batch 2) + +(def (cmd-perf-report app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Perf: showing report"))) + +(def (cmd-perf-top app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Perf: live profiling"))) + +(def (cmd-valgrind-memcheck app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Command: " + (lambda (cmd) + (echo-message! echo (str "Valgrind: memcheck " cmd)))))) + +(def (cmd-valgrind-callgrind app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Command: " + (lambda (cmd) + (echo-message! echo (str "Valgrind: callgrind " cmd)))))) + +(def (cmd-valgrind-cachegrind app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Command: " + (lambda (cmd) + (echo-message! echo (str "Valgrind: cachegrind " cmd)))))) + +(def (cmd-valgrind-massif app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Command: " + (lambda (cmd) + (echo-message! echo (str "Valgrind: massif " cmd)))))) + +(def (cmd-gdb-attach app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "PID: " + (lambda (pid) + (echo-message! echo (str "GDB: attaching to " pid)))))) + +(def (cmd-gdb-run app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Program: " + (lambda (prog) + (echo-message! echo (str "GDB: running " prog)))))) + +(def (cmd-gdb-backtrace app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "GDB: showing backtrace"))) + +(def (cmd-gdb-breakpoint app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Location: " + (lambda (loc) + (echo-message! echo (str "GDB: breakpoint at " loc)))))) \ No newline at end of file --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -23454,3 +23454,65 @@ (lambda (iface) (echo-message! echo (str "Iftop: monitoring " iface)))))) +;;; Round 297 — Strace ext, Ltrace ext, Perf ext (batch 1) + +(def (cmd-strace-attach app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "PID: " + (lambda (pid) + (echo-message! echo (str "Strace: attaching to " pid)))))) + +(def (cmd-strace-run app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Command: " + (lambda (cmd) + (echo-message! echo (str "Strace: running " cmd)))))) + +(def (cmd-strace-filter app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Syscall filter: " + (lambda (flt) + (echo-message! echo (str "Strace: filter " flt)))))) + +(def (cmd-strace-count app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "PID: " + (lambda (pid) + (echo-message! echo (str "Strace: counting syscalls for " pid)))))) + +(def (cmd-ltrace-attach app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "PID: " + (lambda (pid) + (echo-message! echo (str "Ltrace: attaching to " pid)))))) + +(def (cmd-ltrace-run app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Command: " + (lambda (cmd) + (echo-message! echo (str "Ltrace: running " cmd)))))) + +(def (cmd-ltrace-filter app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Library filter: " + (lambda (flt) + (echo-message! echo (str "Ltrace: filter " flt)))))) + +(def (cmd-ltrace-library app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Library: " + (lambda (lib) + (echo-message! echo (str "Ltrace: tracing " lib)))))) + +(def (cmd-perf-stat app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Command: " + (lambda (cmd) + (echo-message! echo (str "Perf: stat " cmd)))))) + +(def (cmd-perf-record app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Command: " + (lambda (cmd) + (echo-message! echo (str "Perf: recording " cmd)))))) + --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -7654,4 +7654,25 @@ (register-command! 'vnstat-live cmd-vnstat-live) (register-command! 'iperf3-server cmd-iperf3-server) (register-command! 'iperf3-client cmd-iperf3-client) + ;; Round 297 + (register-command! 'strace-attach cmd-strace-attach) + (register-command! 'strace-run cmd-strace-run) + (register-command! 'strace-filter cmd-strace-filter) + (register-command! 'strace-count cmd-strace-count) + (register-command! 'ltrace-attach cmd-ltrace-attach) + (register-command! 'ltrace-run cmd-ltrace-run) + (register-command! 'ltrace-filter cmd-ltrace-filter) + (register-command! 'ltrace-library cmd-ltrace-library) + (register-command! 'perf-stat cmd-perf-stat) + (register-command! 'perf-record cmd-perf-record) + (register-command! 'perf-report cmd-perf-report) + (register-command! 'perf-top cmd-perf-top) + (register-command! 'valgrind-memcheck cmd-valgrind-memcheck) + (register-command! 'valgrind-callgrind cmd-valgrind-callgrind) + (register-command! 'valgrind-cachegrind cmd-valgrind-cachegrind) + (register-command! 'valgrind-massif cmd-valgrind-massif) + (register-command! 'gdb-attach cmd-gdb-attach) + (register-command! 'gdb-run cmd-gdb-run) + (register-command! 'gdb-backtrace cmd-gdb-backtrace) + (register-command! 'gdb-breakpoint cmd-gdb-breakpoint) )