Check if the system have restrictions to attach to other processes or other hardening measures, check sysctl settings such as; kernel.yama.ptrace_scope;
Before debug;
# echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope # sysctl -w kernel.yama.ptrace_scope=0
After debug;
# echo 1 | sudo tee /proc/sys/kernel/yama/ptrace_scope # sysctl -w kernel.yama.ptrace_scope=1
If the program needs arguments you can set it at start or later;
(gdb)set args -parameter1 -parameter2
To start gdb in TUI mode press;
To attach to a process (pid 5922) and start UI with disassemble;
$ gdb -p 5922 (gdb) layout asm (gdb) disassemble (gdb) set disassembly-flavor intel
Break on memory address and inspect area of the memory;
(gdb) b *0x400671 (gdb) x/16gx 0x7ffe5217c03d
(gdb) info win (gdb) fs next (gdb) fs SRC
b - backtrace info locals display print catch syscall open
When new thread is created you receive a notification. To get information about threads;
info threads
To select thread;
thread 1
break linespec thread threadno
$ strace -c ./program -o ~/program.strace
$ strace -p 1337 -o ~/program.strace
C program with autotools GDB Quick Start, Learning C with GDB and Memory Layout and the Stack are great sources of introductory information. Stopping and Starting multi-thread programs
C IndexThis is part of the LeetIO System Documentation. Copyright (C) 2021 LeetIO Team. See the file Gnu Free Documentation License for copying conditions.