Eclipse Debug Stepping is Madening!!!!

Okay, I'm at a complete loss here. I'm using eclipse/c++ to write and debug some code. I set a breakpoint.... fine. Execution stops there. The problems come when I start stepping. For this example I am ONLY using "step over". Observe the following code and line numbers:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
179     MYClass::MYClass()
180     {
181             _voiceEngine = &GetGipsVoiceEngineLib();
182             _videoEngine = &GetGipsVideoEngine();
183
184              _transport = NULL;
185             _callback = NULL;
186
187             memset(_sendIP1, 0, 64);
188             _remotePort1 = 0;
189             _localPort1 = 0;
190             memset(_sendIP2, 0, 64);
191             _remotePort2 = 0;
192             _localPort2 = 0;
193
194              _channel1 = 0;
195             _channel2 = 0;
196             _audioChannel1 = 0;
197             _audioChannel2 = 0;
198             _pltype = 127;
199             _mix = false;
200
201             _previewWindow = 0;
202              _remoteWindow = 0;
203     }



I place a breakpoint a line 181 and press F11 (debug). The execution breaks at line 181 like it should. Now, I will single step (over) through the function. You would expect to see it step in a linear fashion. Here is how it is actually stepping for me though:

181
182
187
184
185
188
189
191
182
187
190
192
194
195
196
197
step out to calling function
198
step out to calling function
199
step out to calling function
201
202
step out to calling function (but several lines previous)

What gives???? It is very very difficult to debug this way. I'm better off using printf which just isn't right! What could be the cause of this?

Things I have tried are:
Go to Project Properties -> Run/Debug Settings -> Test (the name of my project -> Edit -> Debugger Tab -> Set Debugger to "gdb Debugger" (from gdb/mi), unchecked "stop on startup at main", unchecked "load shared symbol libraries automatically". I don't think I have an ".gdbinit" file. If I do, I cannot find it.

So my theory is that it's debugging in multithread mode, but I can't find a way to turn that off.

Anyone?
thx,
Zakk
Are you compiling with -mthreads as a parameter? Are you use -ggdb as a debug level compile option?

Also, disable optimization and set debug to lvl 3.
Last edited on
Some more information I forgot to mention. This is a test application that is linking to static libraries. I'm the erratic stepping is happening both in the host application and in the libraryies' source code.

Furthermore, I made a small hello world class and main. The stepping work just fine in there, so I am guessing that it's the way I have this project set up. Although, I can't figure out what. The debugging options are set the same way in both projects.

Also, the code in the libraries IS multithreaded so I don't necessarily want to get rid of thread debugging.
Please don't make multiple topics regarding your issue.

Your issue is actually a GDB issue. I would suggest heading over to the GDB forums/mailing-list and asking there.
Topic archived. No new replies allowed.