Review Request: Common Debugger infrastructure

Niko Sams niko.sams at gmail.com
Mon Mar 30 18:02:53 UTC 2009


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/379/
-----------------------------------------------------------

(Updated 2009-03-30 11:02:53.088999)


Review request for KDevelop.


Changes
-------

I updated the patch and ported the gdb debugger to the common debugger infrastructure.
With that gdb is working again. (regressions included)

Ported for now:
- all actions except start debugging (run must get more powerful for a common start action)
- framestack

All other ToolViews still work - in gdb.

Debugcontroller isn't a plugin anymore, is now directly in shell.

Also included is a simple unittest for gdb (to be extended)


Summary
-------

- IDebugController: has just one slot to add a Debug-Session, debuggers/shell implements this interface.
  Debugger-plugins search for the debuggers/shell plugin and call IDebugController::addSession when
  a debug session is started.
- IDebugSession: debugger plugin inherits from this class to use the debugger UI and communicate
  with the debuggers/shell plugin.

Currenly only the various actions are implemented; Breakpoints, Variable-Views, Stack-Views etc.
should be possible in a similar way.

Please review my ideas and tell me if I go into a wrong direction - or what could be improved.


Diffs (updated)
-----

  trunk/KDE/kdevplatform/interfaces/icore.h 946943 
  trunk/KDE/kdevplatform/debugger/util/treemodel.h 942615 
  trunk/KDE/kdevplatform/debugger/util/treemodel.cpp 942615 
  trunk/KDE/kdevplatform/debugger/util/treeview.h 942615 
  trunk/KDE/kdevplatform/debugger/util/treeview.cpp 942615 
  trunk/KDE/kdevplatform/interfaces/CMakeLists.txt 946943 
  trunk/KDE/kdevplatform/debugger/interfaces/idebugsession.cpp PRE-CREATION 
  trunk/KDE/kdevplatform/debugger/interfaces/stackmodel.h PRE-CREATION 
  trunk/KDE/kdevplatform/debugger/interfaces/stackmodel.cpp PRE-CREATION 
  trunk/KDE/kdevplatform/debugger/util/treeitem.h 942615 
  trunk/KDE/kdevplatform/debugger/util/treeitem.cpp 942615 
  trunk/KDE/kdevelop/debuggers/gdb/CMakeLists.txt 946943 
  trunk/KDE/kdevelop/debuggers/gdb/breakpointcontroller.cpp 946943 
  trunk/KDE/kdevelop/debuggers/gdb/breakpoints.cpp 946943 
  trunk/KDE/kdevelop/debuggers/gdb/debuggerplugin.h 946943 
  trunk/KDE/kdevelop/debuggers/gdb/debuggerplugin.cpp 946943 
  trunk/KDE/kdevelop/debuggers/gdb/debugsession.h PRE-CREATION 
  trunk/KDE/kdevelop/debuggers/gdb/debugsession.cpp PRE-CREATION 
  trunk/KDE/kdevelop/debuggers/gdb/framestackwidget.h 946943 
  trunk/KDE/kdevelop/debuggers/gdb/framestackwidget.cpp 946943 
  trunk/KDE/kdevelop/debuggers/gdb/gdbcommand.h 946943 
  trunk/KDE/kdevelop/debuggers/gdb/gdbcontroller.h 946943 
  trunk/KDE/kdevelop/debuggers/gdb/gdbcontroller.cpp 946943 
  trunk/KDE/kdevelop/debuggers/gdb/ibreakpointcontroller.h 946943 
  trunk/KDE/kdevelop/debuggers/gdb/ibreakpointcontroller.cpp 946943 
  trunk/KDE/kdevelop/debuggers/gdb/ibreakpoints.h 946943 
  trunk/KDE/kdevelop/debuggers/gdb/inewbreakpoint.h 946943 
  trunk/KDE/kdevelop/debuggers/gdb/kdevgdbui.rc 946943 
  trunk/KDE/kdevelop/debuggers/gdb/newbreakpoint.h 946943 
  trunk/KDE/kdevelop/debuggers/gdb/newbreakpoint.cpp 946943 
  trunk/KDE/kdevelop/debuggers/gdb/stackmanager.h 946943 
  trunk/KDE/kdevelop/debuggers/gdb/stackmanager.cpp 946943 
  trunk/KDE/kdevelop/debuggers/gdb/tooltipwidget.h 946943 
  trunk/KDE/kdevelop/debuggers/gdb/tooltipwidget.cpp 946943 
  trunk/KDE/kdevelop/debuggers/gdb/unittests/CMakeLists.txt PRE-CREATION 
  trunk/KDE/kdevelop/debuggers/gdb/unittests/debugee.cpp PRE-CREATION 
  trunk/KDE/kdevelop/debuggers/gdb/unittests/gdbtest.h PRE-CREATION 
  trunk/KDE/kdevelop/debuggers/gdb/unittests/gdbtest.cpp PRE-CREATION 
  trunk/KDE/kdevelop/debuggers/gdb/variablecollection.h 946943 
  trunk/KDE/kdevelop/debuggers/gdb/variablewidget.h 946943 
  trunk/KDE/kdevelop/tools/coverage/tests/corestub.h 946943 
  trunk/KDE/kdevplatform/CMakeLists.txt 946943 
  trunk/KDE/kdevplatform/KDevPlatformConfig.cmake.in 946943 
  trunk/KDE/kdevplatform/cmake/modules/FindKDevPlatform.cmake 946943 
  trunk/KDE/kdevplatform/debugger/CMakeLists.txt PRE-CREATION 
  trunk/KDE/kdevplatform/debugger/debuggerexport.h PRE-CREATION 
  trunk/KDE/kdevplatform/debugger/interfaces/idebugsession.h PRE-CREATION 
  trunk/KDE/kdevplatform/interfaces/idebugcontroller.h PRE-CREATION 
  trunk/KDE/kdevplatform/interfaces/idebugcontroller.cpp PRE-CREATION 
  trunk/KDE/kdevplatform/shell/CMakeLists.txt 946943 
  trunk/KDE/kdevplatform/shell/core.h 946943 
  trunk/KDE/kdevplatform/shell/core.cpp 946943 
  trunk/KDE/kdevplatform/shell/core_p.h 946943 
  trunk/KDE/kdevplatform/shell/debugcontroller.h PRE-CREATION 
  trunk/KDE/kdevplatform/shell/debugcontroller.cpp PRE-CREATION 
  trunk/KDE/kdevplatform/shell/debugger/framestackwidget.h PRE-CREATION 
  trunk/KDE/kdevplatform/shell/debugger/framestackwidget.cpp PRE-CREATION 
  trunk/KDE/kdevplatform/shell/debugger/kdevdebuggershellui.rc PRE-CREATION 
  trunk/KDE/kdevplatform/shell/mainwindow.cpp 946943 
  trunk/KDE/kdevplatform/shell/plugincontroller.cpp 946943 

Diff: http://reviewboard.kde.org/r/379/diff


Testing
-------

ported the xdebug plugin


Thanks,

Niko





More information about the KDevelop-devel mailing list