I've just committed a new manual page to #FreeBSD: tracing(7), an introduction to #tracing and #performance #monitoring facilities.

It'll take a moment before it is available for readers on man.freebsd.org, so for the time being you can grab a copy from here (https://cgit.freebsd.org/src/plain/share/man/man7/tracing.7?id=c29459f901dc73e1ebe1e654da2677cc0b7bd296) and open it with man(1).

#DTrace #dwatch #ktrace #osdev #foss #ptrace #utrace #truss #boottrace #tslog

Making sure you're not a bot!

Upcoming features for #tracexec

#Exec backtrace and jump to parent

In next release, the #TUI will support gathering the exec #backtrace of any exec event, which will greatly simply debugging experience.

The exec backtrace shows the history of a specific event and indicates any ancestor spawns or directly tears itself down and becomes the new process.

Jump to parent is a lighter alternative to backtrace, where you just press `U` to jump to the parent exec evt.

#Linux #eBPF #ptrace #execve

tracexec 0.11.0 released with new timestamp feature and O_CLOEXEC file descriptors are now hidden by default.

#eBPF #linux #ptrace #exec #execve #trace

https://github.com/kxxt/tracexec/releases/tag/v0.11.0

Release v0.11.0 · kxxt/tracexec

New Features tracexec now collects the timestamps of the events. It is currently hidden by default. To show the timestamps inline, use --timestamp option. To control the format of the inline times...

GitHub

Как работает ptrace в Linux и зачем он тебе

Привет, Хабр! Сегодня у нас на столе инструмент, о котором многие слышали, но мало кто использовал по-настоящему — ptrace. С ptrace можно подключаться к чужим процессам, читать и менять их память, перехватывать системные вызовы — и даже вежливо убрать sleep 9999.

https://habr.com/ru/companies/otus/articles/898448/

#ptrace #linux #трассировка

Как работает ptrace в Linux и зачем он тебе

Привет, Хабр! Сегодня у нас на столе инструмент, о котором многие слышали, но мало кто использовал по-настоящему — ptrace. С ptrace можно подключаться к чужим процессам, читать и менять их память,...

Хабр

Process injection shenanigans are dear to my heart - it's one of the first things I ever learned in security.

Inspired by an Akamai blog last month, this blog digs into techniques to tinker with other processes on Linux, and show you how to write a little debugger in C!

https://www.labs.greynoise.io/grimoire/2025-01-28-process-injection/

#linux #reversing #strace #ptrace #gdb

GreyNoise Labs - How-To: Linux Process Injection

Ever wondered how to inject code into a process on Linux?

GreyNoise Labs

Немного об отладке. Часть 1

Приветствую. Вы когда нибудь отлаживали программы? Не врите, что нет. Благодаря отладчикам наши программы работают корректно (или хотя бы близко к этому). Но вот знаете ли вы как отладка устроена: точки останова, шаги, бэктрейс, чтение переменных? Нет или да - ответ не важен. Эта статья даст ответы на многие вопросы об отладке, которые вы, возможно, и не задавали себе. Путешествие на 20 минут

https://habr.com/ru/articles/867478/

#отладка #отладчики #отладка_программ #debugger #debug #ptrace

Немного об отладке. Часть 1

Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать. Брайан Керниган...

Хабр

Goauld: Dynamic Injection Tool for Linux/Android

Goauld is a tool for injecting code into Linux/Android processes via /proc/pid/mem, bypassing Ptrace. Injecting shared libraries without disrupting the binary’s flow.

https://github.com/androguard/goauld

#ptrace #tool

GitHub - androguard/goauld: Dynamic injection tool for Linux/Android

Dynamic injection tool for Linux/Android. Contribute to androguard/goauld development by creating an account on GitHub.

GitHub

Возвращаясь в IT (админская байка)

Волей-неволей, я оказался в другой стране. Февральский Тбилиси встретил ветрами, доброжелательными людьми, безденежьем и необходимостью (после 6-летнего перерыва) в очередной раз вкатываться в IT. И я подписался админить первый подвернувшийся проект. Основой проекта был сбор данных, который состоял из двух частей. Сначала куча бинарников сливала данные в один текстовый файл, который в процессе распухал до сотен гигабайт. Время от времени аналитик, (когда ему была необходима очередная порция данных, запускал его на разборку, скармливая его ещё одному бинарнику (назовём его "parser" ). Случалось это иногда раз в неделю, а иногда и раз в месяц. Сама система была разработана давно уволившемся программистом и, на удивление, уже лет 5+ работала без обслуживания и, при этом, без сбоев. Картину дополняли бардак в документации (если её таковой можно было назвать) и полное отсутствие исходников парсера. Но для админских задач они, как бы, не требовались. До поры. Уже в конце первой недели от аналитика пришла просьба: "Файл очень большой, разбирается иногда пару дней, а работает парсер абсолютно молчаливо, ничего не выдавая на экран, и, поэтому, нельзя ли отобразить процент выполнения. Желательно видный через progress , так как через него отслеживаются и другие задачи". Упомянутая выше документация заканчивалась одной интересной строчкой: "парсинг переведён в однопоточный режим из-за "гонок"". Из этой, не до конца понятной фразы, я вынес для себя, что раз парсинг идёт однопоточно, то нет никаких сложностей извлечь данные из "/proc" . Поэтому: "Да без проблем," — ответил я."

https://habr.com/ru/articles/837250/

#ld_preload #ptrace

Возвращаясь в IT (админская байка)

Волей-неволей, я оказался в другой стране. Февральский Тбилиси встретил ветрами, доброжелательными людьми, безденежьем и необходимостью (после 6-летнего перерыва) в очередной раз вкатываться в IT. И я...

Хабр

I am very excited to share that #tracexec can now be used as a #debugger launcher.

It's usually not trivial or convenient to debug a program executed by a shell/python script(which can use pipes as stdio for the program).
The video shows how to use tracexec to launch #gdb to debug two simple programs piped together by a shell script.

Solves:
- https://stackoverflow.com/questions/5048112/use-gdb-to-debug-a-c-program-called-from-a-shell-script
- https://stackoverflow.com/questions/1456253/gdb-debugging-with-pipe
- https://stackoverflow.com/questions/65936457/debugging-a-specific-subprocess

https://github.com/kxxt/tracexec/releases/tag/v0.4.0

#linux #ptrace #tui

Use GDB to debug a C++ program called from a shell script

I have a extremely complicated shell script, within which it calls a C++ program I want to debug via GDB. It is extremely hard to separate this c++ program from the shell since it has a lot of bran...

Stack Overflow

tracexec 0.1.0 is now finally released! 🎉
v0.1.0 features a fancy TUI built with #Ratatui, file descriptor analyzing, and ability to trace setuid/gid binaries

In case you don't know, it is a small utility for tracing execve{,at} and pre-exec behavior, powered by #linux #ptrace

It's useful for #debugging build systems, understanding what scripts actually do, figuring out what programs does a proprietary software run, or you just want to watch the programs installed on your system exec-ing
1/2