Problem 1: <br> I tried llvm-db of LLVM 1.6, in the Linux environment. However, it always prompts the following info for different tests:<br><br>======================================<br>:> llvm-db a.out.bc<br>llvm-db: The LLVM source-level debugger
<br>Loading program... successfully loaded 'a.out.bc'!<br>(llvm-db) run<br>Starting program: a.out.bc<br>Error: Error waiting for the child process to stop. It exited with status 1<br>======================================
<br><br>I am wondering if llvm-db in 1.6 still works?<br><br><br>Problem 2:<br>I use llvm-gcc -g to compile this C program, and got the followed LLVM code (part). It seems that debug information for some statements are missing,
i.e., we don't know where the coressponding "+" statement is in the source code, from a "add" instruction in the LLVM code. Can anyone comment on this? Thank you very much.<br><br>======================================
<br>short test(short br_data_0,<br> short br_data_1,<br> short br_data_2,<br> short br_data_3,<br> short br_data_4,<br> short br_data_5,<br> short br_data_6,<br>
short br_data_7) {<br><br> short sm07 = br_data_0 + br_data_7; <br> short sm16 = br_data_1 + br_data_6; <br> short sm25 = br_data_2 + br_data_5; <br> short sm34 = br_data_3 + br_data_4;<br> short s0734 = sm07 + sm34;
<br> short s1625 = sm16 + sm25;<br><br> return s0734 + s1625; <br>}<br>======================================<br><br><br>======================================<br>short %test(short %br_data_0, short %br_data_1, short %br_data_2, short %br_data_3, short %br_data_4, short %br_data_5, short %br_data_6, short %br_data_7) {
<br>entry:<br> %dbg.1 = tail call { }* %llvm.dbg.func.start( %lldb.global* %d.test ) ; <{ }*> [#uses=1]<br> %dbg.tmp.1 = tail call { }* %llvm.dbg.stoppoint( { }* %dbg.1, uint 10, uint 0, %lldb.compile_unit* %d.compile_unit ) ; <{ }*> [#uses=1]
<br> %dbg.tmp.3 = tail call { }* %llvm.dbg.stoppoint( { }* %dbg.tmp.1, uint 17, uint 0, %lldb.compile_unit* %d.compile_unit ) ; <{ }*> [#uses=1]<br> %tmp.6 = add short %br_data_1, %br_data_0 ; <short> [#uses=1]
<br> %tmp.15 = add short %tmp.6, %br_data_2 ; <short> [#uses=1]<br> %tmp.18 = add short %tmp.15, %br_data_3 ; <short> [#uses=1]<br> %tmp.12 = add short %tmp.18, %br_data_4 ; <short> [#uses=1]
<br> %tmp.21 = add short %tmp.12, %br_data_5 ; <short> [#uses=1]<br> %tmp.9 = add short %tmp.21, %br_data_6 ; <short> [#uses=1]<br> %tmp.24 = add short %tmp.9, %br_data_7 ; <short> [#uses=1]
<br> %dbg.tmp.7 = tail call { }* %llvm.dbg.region.end( { }* %dbg.tmp.3 ) ; <{ }*> [#uses=0]<br> ret short %tmp.24<br>}<br>======================================<br>