Epic
Epic

Reputation: 622

Debugging a program without halting it

I have a large multi-threaded program written in cpp and compiled with gcc. Every now and then I run into bugs in runtime. Is there a way to attach gdb (or anything else) and try to look what each thread is doing and maybe see some internal class members?

The thing is I do not want gdb to freeze the program. There are timing sensitive parts and freezing the program will change its behavior (and possibly crash it if its long enough).

Upvotes: 1

Views: 265

Answers (1)

Employed Russian
Employed Russian

Reputation: 213385

Is there a way to attach gdb (or anything else) and try to look what each thread is doing and maybe see some internal class members?

Yes: GDB can examine stack trace of each thread, and local and global variables (provided you compiled with debug info).

The thing is I do not want gdb to freeze the program.

That's trickier: GDB can only examine stopped threads.

If you have some threads that should continue to run, you should look into non-stop debugging mode.

Upvotes: 1

Related Questions