Finding bugs in concurrent apps
Debugging multicore code is one of the most interesting, nontrivial problems software designers face today. Problems that only show up on Mondays with a full moon and no silver bullets available can devastate humanity, and problems with concurrent code similarly devastate programmers becau...
Debugging multicore code is one of the most interesting, nontrivial problems software designers face today. Problems that only show up on Mondays with a full moon and no silver bullets available can devastate humanity, and problems with concurrent code similarly devastate programmers because they walk right through most normal debugging tools.
Corensic’s Jinx is designed specifically for multicore systems and is based on Deterministic Multi-Processing (DMP) technology. It forces bugs by setting up thread timing and simulating different paths of execution. Because it runs down different paths, DMP can make even a nondeterministic app behave in a predictable manner. Implemented in a very lightweight hypervisor sitting just above the operating system, Jinx is an interesting approach to finding potential multicore code problems where other tools might not.


Leave a Comment