Howdy!

I have a nice stacktrace from some memory error in valgrind, and it fails to 
print the source file + line number somewhere. Here's the trace:

==63113== Conditional jump or move depends on uninitialised value(s)
==63113==    at 0x52FBA8: __vfprintf (in /usr/lib/system/libsystem_c.dylib)
==63113==    by 0x52F18D: vfprintf_l (in /usr/lib/system/libsystem_c.dylib)
==63113==    by 0x538D99: fprintf (in /usr/lib/system/libsystem_c.dylib)
==63113==    by 0x100046718: write_regfit(char*, Regfit*) (clsf_io.cc:505)
==63113==    by 0x1000466B5: write_regfit(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >, Regfit*) 
(clsf_io.cc:492)
==63113==    by 0x10002F7AC: run_image(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> >, std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >, 
std::__1::basic_ostream<char, std::__1::char_traits<char> >&) (stage1.cc:335)
==63113==    by 0x10002D2C5: run_study(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> >, std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >, 
std::__1::basic_ostream<char, std::__1::char_traits<char> >&) (stage1.cc:266)
==63113==    by 0x10002B83B: run_case(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> >, std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >, 
std::__1::basic_ostream<char, std::__1::char_traits<char> >&) (stage1.cc:222)
==63113==    by 0x100029748: main (stage1.cc:173)
==63113==  Uninitialised value was created by a stack allocation
==63113==    at 0x10002D7D4: run_image(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> >, std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >, 
std::__1::basic_ostream<char, std::__1::char_traits<char> >&) (in 
/Users/nick/Documents/Code/diag/REPO/BIN/stage1)


As you can see, it doesn't say what source file + line number is where the 
uninitialized was created, but when I pass these values into atos (addr2line 
for BSD, basically):

nick@Nicks-MacBook-Pro:~/Documents/Code/diag/REPO/BIN$ atos -o stage1 
0x10002D7D4
run_image(std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> >, std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> >, std::__1::basic_ostream<char, 
std::__1::char_traits<char> >&) (in stage1) (stage1.cc:284)

This is on my Mac, running OSX 10.7, running valgrind 3.8.1

I was wondering why atos can give me source + line number and valgrind can't.

Thanks in advance!
------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnmore_123012
_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to