Re: [Valgrind-users] Debugging a GC with valgrind

2011-01-21 Thread WAROQUIERS Philippe
8 #define RZ_SZB (128) char *sp = /* stack pointer value */; char vbits[RZ_SZB] = {0}; VALGRIND_GET_VBITS(sp-RZ_SZB, vbits, RZ_SZB); VALGRIND_MAKE_MEM_DEFINED(sp-RZ_SZB, RZ_SZB); /* ... scan the red zone here ... */ VALGRIND_SET_VBITS(sp-RZ_SZB, vbits, RZ_SZB); 8 I can

Re: [Valgrind-users] Debugging a GC with valgrind

2011-01-21 Thread Dave Goodell
On Jan 20, 2011, at 6:43 PM CST, john skaller wrote: OK, so I do this now: ... if(debug) fprintf(stderr, Check if *%p=%p is a pointer\n,i,*(void**)i); scan_object(*(void**)i, reclimit); ... The VALGRIND macro there doesn't seem to be working, I must be doing

Re: [Valgrind-users] Debugging a GC with valgrind

2011-01-21 Thread john skaller
On 22/01/2011, at 2:30 AM, Dave Goodell wrote: On Jan 20, 2011, at 6:43 PM CST, john skaller wrote: OK, so I do this now: ... if(debug) fprintf(stderr, Check if *%p=%p is a pointer\n,i,*(void**)i); scan_object(*(void**)i, reclimit); ... The VALGRIND macro there

Re: [Valgrind-users] Debugging a GC with valgrind

2011-01-20 Thread Dave Goodell
On Jan 20, 2011, at 4:35 AM CST, john skaller wrote: On 20/01/2011, at 3:04 AM, Dave Goodell wrote: On Jan 19, 2011, at 9:52 AM CST, john skaller wrote: On 20/01/2011, at 2:39 AM, Dave Goodell wrote: On Jan 18, 2011, at 10:56 PM CST, john skaller wrote: I could rewrite the GC so that

Re: [Valgrind-users] Debugging a GC with valgrind

2011-01-20 Thread john skaller
On 21/01/2011, at 2:55 AM, Dave Goodell wrote: Valgrind tracks the V bits (validity bits) for registers too, so the validity of any pushed register values on the stack will depend on the validity of the register contents before the push. OK thx .. I haven't looked at the VEX machine. If

Re: [Valgrind-users] Debugging a GC with valgrind

2011-01-20 Thread Dave Goodell
On Jan 20, 2011, at 6:07 PM CST, john skaller wrote: Hmmm ..ok did some client request stuff .. looks like I found a bug in OSX! First, what's this? ==7005== Command: tools/flx_ls ==7005== --7005-- warning: addVar: in range 0xcb2 .. 0xcd7 outside segment 0x1 .. 0x1000eefff

Re: [Valgrind-users] Debugging a GC with valgrind

2011-01-20 Thread john skaller
OK, so I do this now: pthread::memory_range_t range = *i; // line 325, this is mark routine, marks reachable objects if(debug) { unsigned long n = (char*)range.e - (char*)range.b; fprintf(stderr, Conservate scan of memory %p-%p, %ld bytes\n,range.b, range.e,

Re: [Valgrind-users] Debugging a GC with valgrind

2011-01-19 Thread Dave Goodell
On Jan 19, 2011, at 9:52 AM CST, john skaller wrote: On 20/01/2011, at 2:39 AM, Dave Goodell wrote: On Jan 18, 2011, at 10:56 PM CST, john skaller wrote: I could rewrite the GC so that the stack scan is in a separate subroutine, and then just exclude that using Valgrinds nice suppression

Re: [Valgrind-users] Debugging a GC with valgrind

2011-01-18 Thread Dave Goodell
A few things that might help you here: 1) Build your program with debugging information, which will help you to understand exactly which line is causing a problem in your stack traces. 2) Tracking down uninitialized value warnings is much easier if you use the --track-origins=yes option to

Re: [Valgrind-users] Debugging a GC with valgrind

2011-01-18 Thread john skaller
On 19/01/2011, at 5:58 AM, Dave Goodell wrote: A few things that might help you here: 1) Build your program with debugging information, which will help you to understand exactly which line is causing a problem in your stack traces. Done. 2) Tracking down uninitialized value warnings is

[Valgrind-users] Debugging a GC with valgrind

2011-01-17 Thread john skaller
I have some kind of memory corruption in a C++ program generated by a tool. The program uses my own exact garbage collector which may be the cause of the problem. The size of the data being processed is to big to trace anything by hand .. so I thought I'd try that excellent and magical tool,