What CPU and what Linux distro is this with?

J

On Thursday 30 April 2009, Allen Lee wrote:
> Hi,
>
> ++++++++++++
> Here's the version of valgrind and gcc: valgrind 3.4.1 and gcc 3.4.4
> ++++++++++++
>
> I still can't solve the problem. I guess symbol table might be missed
> because the so file is loaded dynamically.
> Any advice? Or is there other approach to get the symbol belongs to the
> addresses in log file.
> Thanks.
>
> On Tue, Apr 28, 2009 at 3:11 PM, Allen Lee <[email protected]> wrote:
> > Hi guys,
> >
> > I use valgrind to detect memory-leak of my module C. Application A use
> > exec to run application B, and then B will load my module C.so
> > dynamically. Just for test, I add some defects on purpose, following the
> > quick guide in http://valgrind.org/docs/manual/quick-start.html. There
> > are two errors in the C.so right now. (problem 1: heap block overrun and
> > problem 2: memory leak -- x not freed)
> > Then, C.so is compiled with the options -O1 and -g.
> >
> > Here is the command line of valgrind:
> > valgrind --log-file=log1 --tool=memcheck --leak-check=full
> > --read-var-info=yes --trace-children=yes --error-limit=no A
> >
> > And ps says
> > 16497 pts/1    Sl     0:14 valgrind --log-file=log1 --tool=memcheck
> > --leak-check=full --read-var-info=yes --trace-children=yes
> > --error-limit=no B
> >
> > The defects are caught successfully, but in the log file, it says like
> > this:
> >
> > ==16497==
> > ==16497== Invalid write of size 4
> > ==16497==    at 0x5FFF336: ???
> > ==16497==    by 0x5FFF541: ???
> > ==16497==    by 0x602994E: ???
> > ==16497==    by 0x832778C: TCFileioManager::loadFileioAdaptor() (in
> > XXXXX) ...
> > ...
> > ==16497==  Address 0x5d53d08 is 0 bytes after a block of size 40 alloc'd
> > ==16497==    at 0x4004A41: malloc (vg_replace_malloc.c:207)
> > ==16497==    by 0x5FFF335: ???
> > ==16497==    by 0x5FFF541: ???
> > ==16497==    by 0x602994E: ???
> > ==16497==    by 0x832778C: TCFileioManager::loadFileioAdaptor() (in
> > XXXXX)
> >
> > Because I don't have the source code of application B. So I don't know
> > how B load C.so. What I need to do is just put it at specific path so
> > that B can find it.
> > It seems like valgrind doesn't know what the symbols are.
> > Can valgrind load the symbol table of a dynamic loaded library? Or, what
> > option did I miss?
> >
> > Thank you.
> > - Allen



------------------------------------------------------------------------------
Register Now & Save for Velocity, the Web Performance & Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance & Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
_______________________________________________
Valgrind-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to