[Soot-list] Retaining debug information through Soot?

Nathan Deisinger ndeisinger at wisc.edu
Thu Nov 14 18:17:49 EST 2013


(This is a re-send of an e-mail sent before joining the list; as far as I can tell it never went through properly.)

Hi folks,
 
 I'm an undergraduate at the University of Wisconsin-Madison; the group I've been working with has recently developed a method for performing lightweight path profiling and call coverage instrumentation to aid in debugging (see Ohmann 2013(http://pages.cs.wisc.edu/%7Eliblit/ase-2013/ase-2013.pdf)). This instrumentation is applied through a transformation in the LLVM compiler framework which adds both instrumentation to perform the actual profiling and variables which store the results. These variables can then be observed in a crash dump to reconstruct useful information about the program's execution.
 
 As part of my work with the group, I'm investigating extending this concept to Java programs. In my time experimenting with Soot it seems like an excellent fit for creating the necessary instrumentation; however, it seems like Soot discards all debug information (eg. local variable tables) as it runs. As the intended use of this program is to recover information from a crash dump (in the Java case, an uncaught exception or other error), losing the debug symbols makes it extremely difficult to extract the information we collect.
 
 Is there some known way for Soot to maintain debug information throughout its transformations? More importantly, debug symbols for variables added through Soot would also have to be included in the final class file.
 
 Thanks very much in advance.

 -Nate


More information about the Soot-list mailing list