Charm++ offers a variety of parallel debugging options, from the extremely basic to the extremely sophisticated. The traditional debugging methods, such as logging (via the CkPrintf routine) and interactive debugging (via the "++debug" command line option) are supported under Charm++.
In addition, Charm++ offers several additional features designed to simplify application development. Linking with "-memory paranoid" checks all dynamic heap allocation calls for common errors, such as double-delete, random-delete, read-after-delete, buffer over- and under-write errors. Charm++, when compiled without "-DCMK_OPTIMIZE", contains hundreds of assertions to catch invalid parameters and unintialized data passed to API routines.
We are working on a sophisticated parallel debugger, with the ability to set breakpoints, examine variables, objects, and messages across the entire machine. The design of this debugger is described in the paper below.
People
Papers / Talks
-
10-232010
PaperDebugging Parallel Applications via Provisional Execution
- Filippo Gioachin
- Laxmikant Vasudeo Kale
-
10-122010
PaperRobust Non-Intrusive Record-Replay with Processor Extraction
- Filippo Gioachin
- Gengbin Zheng
- Laxmikant Vasudeo Kale
-
10-112010
PaperDebugging Large Scale Applications in a Virtualized Environment
- Filippo Gioachin
- Gengbin Zheng
- Laxmikant Vasudeo Kale
-
09-032009
PaperScalable Interaction with Parallel Applications
- Filippo Gioachin
- Chee Wai Lee
- Laxmikant Vasudeo Kale
-
08-082008
PaperDynamic High-Level Scripting in Parallel Applications
- Filippo Gioachin
- Laxmikant Vasudeo Kale
-
99-041999
PaperMultilingual Debugging Support for Data-Driven and Thread-Based Parallel Languages
- Parthasarathy Ramachandran
- Laxmikant Vasudeo Kale
-
92-101992
PaperDynamic Adaptive Scheduling in an Implementation of a Data Parallel Language
- Ed Kornkven
- Laxmikant Vasudeo Kale