Hi experts,
I'm using llvm3.4.1 on OSX 10.9.3.
My codes,
// longstack.cc
int* a;
void foo(int n)
{
a[n]++;
foo(++n);
}
int main(int argc, char** argv) {
a = new int[30];
foo(0);
}
Build:
/usr/local/Cellar/llvm34/3.4.1_1/bin/clang++-3.4 -O0 -g -fsanitize=address
longstack.cc -o ./longstack
Debug:
(lldb) target create ~/Test\ Projects/clang/longstack
Current executable set to '~/Test Projects/clang/longstack' (x86_64).
(lldb) run --stop-at-entry
Process 65604 launched: '/Users/tengxiang/Test Projects/clang/longstack'
(x86_64)
Process 65604 stopped
* thread #1: tid = 0xa5879, 0x00007fff5fc01028 dyld`_dyld_start, stop
reason = exec
frame #0: 0x00007fff5fc01028 dyld`_dyld_start
dyld`_dyld_start:
-> 0x7fff5fc01028: popq %rdi
0x7fff5fc01029: pushq $0
0x7fff5fc0102b: movq %rsp, %rbp
0x7fff5fc0102e: andq $-16, %rsp
(lldb) b foo
Breakpoint 1: where = longstack`foo(int) + 291 at longstack.cc:5, address =
0x0000000100000ab3
(lldb) c
Process 65604 resuming
Process 65604 stopped
* thread #1: tid = 0xa5879, 0x0000000100000ab3
longstack`foo(n=<unavailable>) + 291 at longstack.cc:5, queue =
'com.apple.main-thread, stop reason = breakpoint 1.1
frame #0: 0x0000000100000ab3 longstack`foo(n=<unavailable>) + 291 at
longstack.cc:5
2
3 void foo(int n)
4 {
-> 5 a[n]++;
6 foo(++n);
7 }
8
(lldb) p n
error: Couldn't materialize struct: size of variable n disagrees with the
ValueObject's size
Errored out in Execute, couldn't PrepareToExecuteJITExpression
See I can't print variable's value. And bt won't show parameters' value,
looks like
frame #0: 0x0000000100000ab3 longstack`foo(n=<unavailable>) + 291 at
longstack.cc:5
And then I tried remove -fsanitize=address, like
/usr/local/Cellar/llvm34/3.4.1_1/bin/clang++-3.4 -O0 -g longstack.cc -o
./longstack
It prints in lldb,
(lldb) p n
(int) $0 = 258504
Did I miss anything? Or is there a way to print variables in asan-ified
executables in debugging?
Regards,
-xiang
--
You received this message because you are subscribed to the Google Groups
"address-sanitizer" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.