Dbx68Support
dbx debugger support in Netbeans 6.8
Team
Egor Ushakov, Vladimir Voskresensky, Ivan Soleimanipour
Charter
Allow users to debug binaries built with Sun Studio
Goals
- Defining: dbx can be used as debugger in toolchain
- Defining: supported features are on par with gdb-gui:
- debug managed and makefile based projects
- debugger actions (stop, pause, step over/into/out, run to cursor)
- 3 types of breakpoints (line, function, address) with conditions and hit count
- debugger views (Locals, Watches, Breakpoints, Stack)
- attach to process
- debug shared libs
- evaluate on mouse hover
- Defining: dbx-gui and gdb-gui should have the same user view (same buttons, windows, table layouts)
- Defining: remote debugging
- Target: advanced debugger views (Disassembly, Registers, Memory)
- Nice to have: fix and continue
- Nice to have: debug core files
- Nice to have: stop on signal
Main Plan
| Goal | Deliverable | Status |
|---|---|---|
| 1. change dbx-gui sources to fit in NB space (switch to NB project structure, ant build scripts etc.) | dbx-gui can be developed and built as a NB project | done |
| 2. create the main mercurial repository for dbx-gui sources | latest dbx-gui sources can be easily obtained and modified by any team member | done, with the exception that we have 2 repos |
| 3. (dependency) create common native debugger API | list of APIs, SPIs, etc. | in progress, breakpoints, autocompletion are there |
| 4. modify gdb-gui and dbx-gui to use common native debugger API | multiple breakpoints and other coexistence related issues are solved | done, supports 3 common bpts types and gdb properties set |
| 5. open source required parts of dbx-gui | part of the gdb-gui sources goes to NB repository, the rest (if required) is distributed as a binary through the Update Center | |
Issues to solve
| Issue | Priority | Status | Risks |
|---|---|---|---|
| 1. Run debugger (gdb or dbx) depending on toolchain | High | fixed | |
| 2. Switch to CND remote host management (ExecutionEnvironment) | High | done | |
| 3. Breakpoints collision (IZ 163627) | High | fixed | |
| 4. Debugger actions & breakpoints UI consistency | High | fixed | |
| 5. Windows & Mac support | High | fixed | only remote on Windows and Mac |
| 6. Create platform independent service based on libbase.so and tools_exec | Medium | fixed | |
| 7. Switch to CND execution | Medium | dbxgui uses some native features that we may not be able to implement in CND execution (e.g. pty) | |
| 8. Debugger properties (show only toolchain debugger) | Medium | fixed | |
| 9. Auto view | Medium | in progress, infrastructure is in place | |
| 10. Macro support | Medium | in progress, infrastructure is in place | |
| 11. Get dbx path from the toolchain | Medium | fixed | |
| 12. Support more breakpoint properties and breakpoint types? | Medium | ||
| 13. Dbx breakpoints persistence | Medium | ||
| 14. Views consistency (locals, watches, etc) | Medium | ||
| 15. Common external terminal infrastructure | Medium | ||
| 16. Unify attach | Medium | ||
| 17. Solve port forwarding issues | Medium | current implementation does not work with modern Solaris where port forwarding turned off by default | |
| 18. Dependency on SS 12u1 | Low | ||
| 19. Disassembler | Low | ||
| 20. Memory view | Low | ||
| 21. Unite debug core actions | Low | ||
| 22. Detect dbx in Sun Studio toolchain (IZ 159444) | Low | fixed | |
| 23. Detect dbx version correctly (IZ 159445) | Low | fixed | |
| 24. Make UI in netbeans style | Low | ||
| 25. Allow to use gdb in SS toolchain and vice versa | Low | ||
| 26. Create a prototype for binary installation from the Update Center | Pending | ||

