Debugging source code using gdb

When a breakpoint is stopped for an input port, you can use the gdb command to have the Streams Debugger provide some commands for inspecting the application elements that can be observed while debugging. Start the gdb source code debugger for the operator process method.

Use this method for debugging user written source code. The parameter to the gdb command is the probe point ID of the currently stopped breakpoint. This example command opens gdb in a new window.
(sdb) gdb 0
Wrote GDB commands to file ./data/Writer.i.0.gdb
(sdb)
The last two lines in this example show the breakpoint set for the process methods in the operator (one for tuple handling and another for punctuation handling).
Loaded symbols for /lib64/libkeyutils.so.1
Reading symbols from /user/lin64/libicudata.so.36...done.
Loaded symbols for /usr/lib64/libicudata.so.36
Reading symbols from /lib64/libselinux.so.1...done.
Loaded symbols for /lib64/libselinux.so.1
Reading symbols from /lib64/libsepol.so.1...done.
Loaded symbols for /lib/libsepol.so.1
0x00000031fea07655 in pthread join () from /lib64/libpthread.so.0
Breakpoint 1 at 0x4185d0: file ../operator/Writer.cpp, line 34.
Breakpoint 2 at 0x418640: file ../operator/Writer.cpp, line 19.
When you run the (c)ontinue command in the sdb, the execution is resumed and the gdb breakpoint suspends the program.
(sdb) c 0
(sdb)
Note: When gdb is in control of debugging the source code, the sdb becomes blocked and cannot respond to command-line input until you continue execution from gdb. Using gdb in combination with sdb becomes an interplay of two debuggers where only one of the debuggers is in control at any one time.