Seeing is Understanding: Debugging with the Multicore Visualizer
Given a program running a hundred threads on a multicore processor, which would you rather have?
- a flat list of 100 threads in the Debug View, with tons of expandable, textual information,
- a graphic view showing at a glance the layout of those threads, and which are paused or crashed
Obviously, you want both, and you want them to work together. And so you should!
Multicore hardware is a reality for industries such as telecommunication, automotive, consumer electronics, and aerospace. Chips with hundreds, perhaps thousands of cores are the future of computing. Visualization views help developers cope with the ensuing complexity by presenting large numbers of items in a graphic summary, and providing operations on arbitrary selections of those items.
The CDT community is working on a Visualization Framework that supports such views. As a specific instance, the CDT will include a Multicore Visualizer to enhance the debugging of parallel applications via the GDB debugger on multicore hardware.
In this talk, we'll:
- present a demo of the Multicore Visualizer view, showing its use in your normal debugging session
- overview the pluggable, extensible Visualization Framework that supports this view
- discuss how you can use the Visualization Framework yourself to modify the Multicore Visualizer view, or even roll your own visualization (which doesn't necessarily have to be tied to debugging)
The Multicore Visualizer is one of the projects of the Multicore Debug Working Group, with member companies such as Tilera, Ericsson, TI, Tensilica, Mentor Graphics, and others.
We'll conclude the presentation by discussing forthcoming multicore GDB debugging features that complement the Multicore Visualizer display by targeting the multicore debugging problem:
Global Breakpoints, Fully integrated GDB console, Processes/Threads/Cores Sets, Scalability and performance enhancements.