Everytime I attach to a process using gdb, it will stop the target program, and I need to type 'cont' to let it go. Is there a way to attach to a process without stopping it? This makes things easier if the process will behave differently if it stops for a while.
Asked
Active
Viewed 2.5k times
32
-
Why would you attach and continue immediately? My use case has been attach > Set a breakpoint > continue. – talekeDskobeDa Jun 17 '20 at 10:48
-
@talekeDskobeDa You attach and continue immediately to catch a crash in the debugger. In this case, there is no need for a breakpoint, and stopping the program can have side effects. – Graham Leggett Mar 08 '23 at 21:49
3 Answers
48
I know there is already a fine answer for this, but I prefer not using an additional file.
Here is another answer:
gdb attach $(pidof process_name) -ex cont

dashesy
- 2,596
- 3
- 45
- 61
-
1I had to disable pagination, because on attach there were too many threads, and gdb did not perform 'continue' before user intervention: `gdb -iex "set pagination off" -q -ex cont -p $PID` – Alex Cohn Apr 27 '22 at 14:19
15
You can't make it not stop. You can however instantly continue... Create a simple batch script which will attach to a specific process and instantly continuing execution after attaching:
gdb attach $1 -x <(echo "cont")
./attach PID

Community
- 1
- 1

QuantumBlack
- 1,549
- 11
- 27
3
For when you don't know the PID of the process...
gdb attach $(pgrep -f myApp) -ex cont

Dan
- 1,112
- 11
- 14