[Soot-list] Retaining debug information through Soot?

Marc-André Laverdière marc-andre.laverdiere-papineau at polymtl.ca
Fri Nov 15 15:33:30 EST 2013


I remember that Alexandre Bartel did some variant of Soot that does the
transformations in place - maybe that will help. I'm CCing him just in
case :)

Marc-André Laverdière-Papineau
Doctorant - PhD Candidate

On 11/14/2013 07:26 PM, Nathan Deisinger wrote:
> Ah, my mistake for not mentioning I had tried that option. I know that gets me Jimple with the names intact, but Soot doesn't seem to translate that into actual Java debug information when exporting a class. Thanks for the response, though!
> 
> On 11/14/13, Marc-André Laverdière-Papineau  wrote:
>> Hi,
>>
>> This is not going to be a full answer, but at least it can help you get
>> started.
>>
>> Soot has an option to keep the original variable names. There are some
>> known issues about it, but it mostly works.
>>
>> Try -p jb use-original-names:true and let me know if it works for you.
>>
>> Marc-André Laverdière-Papineau
>> Doctorant - PhD Candidate
>>
>> On 14/11/13 06:17 PM, Nathan Deisinger wrote:
>>> (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
>>> _______________________________________________
>>> Soot-list mailing list
>>> Soot-list at sable.mcgill.ca
>>> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>>>
>> _______________________________________________
>> Soot-list mailing list
>> Soot-list at sable.mcgill.ca
>> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> 


More information about the Soot-list mailing list