<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">Hello Duncan,</span><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Thank you for your quick answer. I use the standard Makefile from a pass, that is calling Makefile.common. I saw only the make -d option, that "<b><i>print lots of debugging information</i></b>", as mentioned by LLVM.</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Using this, valgrind don't tell me extra info. It is a very good idea ti use -g, but where to insert? If I am trying to use clang++, I have to fix a lot of things. Should I make the changes for to use clang++ or I can debug using the Makefile.common?</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, May 30, 2013 at 1:57 PM, Duncan Sands <span dir="ltr"><<a href="mailto:baldrick@free.fr" target="_blank">baldrick@free.fr</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Alexandru,<br>
<br>
> /*==5134== Invalid write of size 4<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
==5134==    at 0x4039280: (anonymous<br>
namespace)::Hello::<u></u>runOnModule(llvm::Module&) (in<br>
/home/alex/llvm/Release+<u></u>Asserts/lib/Hello.so)<br>
==5134==    by 0x8E33DE3: llvm::MPPassManager::<u></u>runOnModule(llvm::Module&) (in<br>
/home/alex/llvm/Release+<u></u>Asserts/bin/opt)<br>
==5134==    by 0x8E3726F: llvm::PassManagerImpl::run(<u></u>llvm::Module&) (in<br>
/home/alex/llvm/Release+<u></u>Asserts/bin/opt)<br>
==5134==    by 0x8E37385: llvm::PassManager::run(llvm::<u></u>Module&) (in<br>
/home/alex/llvm/Release+<u></u>Asserts/bin/opt)<br>
==5134==    by 0x41AE4D2: (below main) (libc-start.c:226)<br>
==5134==  Address 0x46cfa40 is 0 bytes after a block of size 200 alloc'd<br>
==5134==    at 0x402C454: operator new[](unsigned int) (in<br>
/usr/lib/valgrind/vgpreload_<u></u>memcheck-x86-linux.so)<br>
==5134==    by 0x4037AE0: (anonymous<br>
namespace)::Hello::<u></u>runOnModule(llvm::Module&) (in<br></div>
/home/alex/llvm/Release+<u></u>Asserts/lib/Hello.so)*/<div class="im"><br>
==5134==  Address 0x46cfa40 is 0 bytes after a block of size 200 alloc'd<br>
==5134==    at 0x402C454: operator new[](unsigned int) (in /usr/lib/valgrind/vgpreload_<u></u>memcheck-x86-linux.so)<br>
==5134==    by 0x4037AE0: (anonymous namespace)::Hello::<u></u>runOnModule(llvm::Module&) (in /home/alex/llvm/Release+<u></u>Asserts/lib/Hello.so)<br>
</div></blockquote>
<br>
you are writing of the end of an array that you allocated with "new".  If you<br>
compile your program with debug info (-g) then valgrind should give you the line<br>
number at which the allocation occurred and the line number at which the bad<br>
write occurred.<br>
<br>
Ciao, Duncan.<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><font style="background-color:rgb(255,255,255);color:rgb(153,153,153)">Best regards,</font><br style="background-color:rgb(255,255,255);color:rgb(153,153,153)">
<font style="background-color:rgb(255,255,255);color:rgb(153,153,153)">Alexandru Ionut Diaconescu</font><br>
</div>