Eclipse CDT Debugging


#1

Hi, guys! I am debugging the SciDB limit plugin downloaded from githhub (https://github.com/Paradigm4/limit) with Eclipse CDT. I think this is an good example to learn the working process of the plugin. So I import the make project into Eclipse neon, and I add the include directory and lib directory of SciDB into the project. The limit is successfully built.
Next, I set the debug configuration to let it attach to iquery application. And set breakpoints in the limit source files (LogicalLimit.cpp and PhysicalLimit.cpp).


Then, I start to debug. Eclipse asks me to select a process to attach. I have four instances of SciDB database, but there are eight processes. Every instance corresponds to two process. I don’t know the differences, and I choose the second SciDB-0-0-mydb process to attach.

Then I run the iquery command in the terminal.

But the process just steps into the boost files, and never goes to the source files of limit.

When I steps out of task_io_service.ipp file, the process just ended. And iquery prints the query result. So can anyone tell me how to perform the debugging? Thank you, guys!


#2

Finally, I can step into the source code. But can anyone tell me the differences between the two processes of a instance shown above, for example, there are tow processes of sciDB-0-0-mydb?


#3

One of the SciDB-x-y processes (the one with the lower pid) is a watchdog that forks the other and then attempts to restart it should it exit. You can set no-watchdog=true in the config.ini file and restart if you don’t want the watchdog procs.


#4

Thank you for your kind explanation!