More debugger bugs

Andras Mantia amantia at kde.org
Tue Nov 28 22:26:16 UTC 2006


On Tuesday 28 November 2006 22:09, Vladimir Prus wrote:
> I can't reproduce it.

Let's try again. The same system with --enable-debug 
(not --enable-debug=full yet):

- KDevelop loads the kdevelop-3.4.kdevelop project automatically on 
startup
- there are two breakpoints set in the project (loaded from the session 
file):
 projectmanager.cpp:576
 plugincontroller.cpp:193

I have one change compared to the svn version:
PluginController::getInstance()->unloadPlugins( m_info->m_ignoreParts );
is the last called after 
PluginController::getInstance()->loadProjectPlugins( 
m_info->m_ignoreParts );
PluginController::getInstance()->loadGlobalPlugins( 
m_info->m_ignoreParts );
inside ProjectManager::loadLocalParts().

- start the KDevelop (from KDevelop) inside the debugger
- when it hits the breakpoint I get an error:
Address requested for identifier "this" which is in register $r12
- I select "m_info->m_ignoreParts", right-click, watch
- I open the watched variable until I see the "data" part
- step into the next statement (F11), using the mouse => 
PluginController:getInstance
- error message:
No symbol "m_info" in current context. (m_info gets grayed out)
- step over (F10):
No symbol "m_info" in current context.
- step over 2x => exit current method, go back to 
ProjectManager::loadLocalParts()
- error message:
Address requested for identifier "this" which is in register $r12
- m_info is enabled
- step into (F11): cursor remains on the same line (I think this is 
because of -O2 there)
- step into again:
Address requested for identifier "this" which is in register $r12
- cursor moves to the next line
- step into again:
GDB exited abnormally
This is likely a bug in GDB. Examine the gdb output window and then stop 
the debugger

Ok, this was another scenario, but still something is wrong there. I run 
this two twice and with some difference in the end (I see the "lvalue 
error" once) it went the same route and ended with an exit of gdb.

If I don't restart KDevelop, just start the debugger again I don't get 
some of the "address requested" error, but still ends at the same 
place.

Second test:
- add a breakpoint to plugincontroller.cpp:286 (the beginning of 
PluginController::unloadPlugins( QStringList const & unloadParts ) )
- run in debugger
- when it stops at the breakpoint: frame stack, click on #1.
Can't take address of "this" which isn't an lvalue.
- select "unload", Watch it
- click #0, #1, #0 in the framestack:
No symbol "newProfile" in current context
- click #1, #0:
Address requested for identifier "this" which is in register $rdi
No symbol "newProfile" in current context
- click #1, #0 but quickly: #0 is selected, but the page for #1 is 
visible and the debug cursor is also there.
- click #0 again: now no errors appear (timing issue??)
- F10: cursor goes 2 lines up
- F10: cursor comes back to the breakpoint
-  #1, #0 switch is OK now.
- F10:
No symbol "newProfile" in current context.
- F10:
No symbol "unload" in current context.
No symbol "newProfile" in current context.
No symbol "oldProfile" in current context.
- F10 (leaves the method):
Address requested for identifier "this" which is in register $r13
Address requested for identifier "this" which is in register $r13
- continue to run (hm, why is the buttom called Restart?)
- breaks in projectmanage:
Address requested for identifier "this" which is in register $r12
Address requested for identifier "this" which is in register $r12
No symbol "unload" in current context.
No symbol "newProfile" in current context.
No symbol "oldProfile" in current context.
- watch m_info->m_ignoreParts
- continue to run (breaks in unloadPlugins again)
Address requested for identifier "this" which is in register $rdi
Address requested for identifier "this" which is in register $rdi
- switch to #1
Can't take address of "this" which isn't an lvalue.
Can't take address of "this" which isn't an lvalue.
No symbol "unload" in current context.
(after the framestack is refreshed)
No symbol "m_info" in current context.
Address requested for identifier "this" which is in register $rdi
Variable object not found
Variable object not found
No symbol "m_info" in current context.
Address requested for identifier "this" which is in register $rdi
Variable object not found
No symbol "unload" in current context.
Variable object not found
No symbol "m_info" in current context.
(13 error dialogs in a row!)
- #0 remain selected altough I switched to #1
- #1 is not the correct one. I should be in 
ProjectManager::loadLocalParts from where the unloadPlugins is called, 
but instead I'm in ProjectManager::slotLoadProject !
This might be again -O2 or something like that (bt in the gdb windows 
gives the same stack trace)
- go back to #0.
- step out (F12)
- continue

The second scenario doesn't crash, but can easily drive me crazy with 
the dialogs. 


I hope you can reproduce something with this.

Andras
-- 
Quanta Plus developer - http://quanta.kdewebdev.org
K Desktop Environment - http://www.kde.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20061129/ddafbbd0/attachment.sig>


More information about the KDevelop-devel mailing list