is there any way to debug a program in LLVM-IR line-by-line (i.e. with gdb)?
The problem is, i have a program in human-readable-intermediate representation that segfaults, when executed. I want to know, which line in the IR causes this.
I was hoping i could run the program and step throught IR-Code line by line, maybe even have a look at the variables.
Well, what about compiling it into assembler-code. Is there any way to know which IR-line generated which assembler line(s)? (I do not need any optimizations or whatever, if that helps...)
I was hoping i could run the program and step throught IR-Code line by line, maybe even have a look at the variables.
Well, what about compiling it into assembler-code. Is there any way
to know which IR-line generated which assembler line(s)? (I do not
need any optimizations or whatever, if that helps...)
What if you write a program that
1) adds a new GlobalVariable
2) prepends each instruction in the program with a volatile store to
that GlobalVariable using a unique value (line number or instruction
count).
When the program crashes you can use gdb to read the contents of that
GlobalVariable to see the last IR instruction that was executed?
Have you tried using 'lli' with --force-interpreter? Then you can step
through the interpreter line by line, which is sort of liking stepping
through the IR line by very-slow-line.