<div dir="ltr"><font size="4">Hi all, </font><div><font size="4">I follow this page <a href="http://clang.llvm.org/docs/MemorySanitizer.html">http://clang.llvm.org/docs/MemorySanitizer.html</a> to play the sanitizer, b</font><span style="font-size:large">ut the output of the example does not have symbol names.</span></div>
<div><font size="4"><br></font></div><div><div><font size="4">$ cat umr.cc</font></div><div>#include <stdio.h></div><div><br></div><div>int main(int argc, char** argv) {</div><div>  int* a = new int[10];</div><div>  a[5] = 0;</div>
<div>  if (a[argc])</div><div>    printf("xx\n");</div><div>  return 0;</div><div>}</div><div><br></div><div><font size="4">$ clang -fsanitize=memory -fno-omit-frame-pointer -g -O2 umr.cc</font></div></div><div>
<font size="4">$ ./a.out</font></div><div>==22181== WARNING: MemorySanitizer: use-of-uninitialized-value</div><div>    #0 0x7fde2aa395f6 (/home/jianjun/tmp/a.out+0x7d5f6)</div><div>    #1 0x7fde298bd76c (/lib/x86_64-linux-gnu/libc.so.6+0x2176c)</div>
<div>    #2 0x7fde2aa3941c (/home/jianjun/tmp/a.out+0x7d41c)</div><div><br></div><div>SUMMARY: MemorySanitizer: use-of-uninitialized-value ??:0 ??</div><div>Exiting</div><div><br></div><div><br></div><div><font size="4">OS: ubuntu 12.04lts x86_64<br>
</font></div><div><font size="4">$ clang -fsanitize=memory -fno-omit-frame-pointer -g -O2 umr.cc -v</font><br></div><div><div>Ubuntu clang version 3.5-1~exp1 (trunk) (based on LLVM 3.5)</div><div>Target: x86_64-pc-linux-gnu</div>
<div>Thread model: posix</div><div>Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.8</div><div>Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.8.1</div><div>Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.6</div>
<div>Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.6.3</div><div>Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8</div><div>Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8.1</div>
<div>Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.8</div><div>Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.8.1</div><div>Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.6</div>
<div>Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.6.3</div><div>Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8</div><div>Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8.1</div>
<div>Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8</div><div> "/usr/bin/clang" -cc1 -triple x86_64-pc-linux-gnu -emit-obj -disable-free -disable-llvm-verifier -main-file-name tst.cc -mrelocation-model pic -pic-level 2 -pie-level 2 -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -target-linker-version 2.22 -momit-leaf-frame-pointer -v -g -resource-dir /usr/bin/../lib/clang/3.5 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/x86_64-linux-gnu -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/backward -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/x86_64-linux-gnu/c++/4.8 -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/clang/3.5/include -internal-externc-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O2 -fdeprecated-macro -fdebug-compilation-dir /home/jianjun/tmp -ferror-limit 19 -fmessage-length 0 -fsanitize=memory -fno-assume-sane-operator-new -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -vectorize-loops -vectorize-slp -o /tmp/tst-8d6366.o -x c++ tst.cc</div>
<div>clang -cc1 version 3.5 based upon LLVM 3.5 default target x86_64-pc-linux-gnu</div><div>ignoring nonexistent directory "/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/x86_64-linux-gnu"</div>
<div>ignoring nonexistent directory "/include"</div><div>#include "..." search starts here:</div><div>#include <...> search starts here:</div><div> /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8</div>
<div> /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/backward</div><div> /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/x86_64-linux-gnu/c++/4.8</div><div> /usr/local/include</div><div>
 /usr/bin/../lib/clang/3.5/include</div><div> /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/include</div><div> /usr/include/x86_64-linux-gnu</div><div> /usr/include</div><div>End of search list.</div><div> "/usr/bin/ld" -whole-archive /usr/bin/../lib/clang/3.5/lib/linux/libclang_rt.msan-x86_64.a -no-whole-archive -pie -z relro --hash-style=gnu --build-id --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o a.out /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/Scrt1.o /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/crtbeginS.o -L/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8 -L/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../.. -L/lib -L/usr/lib /tmp/tst-8d6366.o -lpthread -lrt -ldl -lm -export-dynamic -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/crtendS.o /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o</div>
</div><div><br></div><div><span style="font-size:large">Anything wrong with my compilation and linkage?</span><br></div><div><font size="4"><br></font></div><div><font size="4">Thanks,</font></div><div><font size="4">Jianjun.</font></div>
<div><br></div></div>