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