Gotcha. Thank you!

On Tuesday, April 5, 2016 at 12:02:45 PM UTC-4, Dmitry Vyukov wrote:
>
> On Tue, Apr 5, 2016 at 5:54 PM,  <[email protected] <javascript:>> 
> wrote: 
> > 
> > 
> > On Tuesday, April 5, 2016 at 9:40:26 AM UTC-4, Dmitry Vyukov wrote: 
> >> 
> >> On Tue, Apr 5, 2016 at 3:33 PM,  <[email protected]> wrote: 
> >> > Hi, I'm running ASAN on a multiprocess workload, specifically an MPI 
> >> > program. ASAN seems to handle this fairly well, by printing the 
> process 
> >> > number at the beginning of each section. However, the outputs from 
> each 
> >> > process sometimes get overlapped, and the callstacks are therefore 
> >> > sometimes 
> >> > overlapping a bit. One feature that I would like (which the valgrind 
> >> > tools 
> >> > have) is to see the output to different log files, one per process. 
> One 
> >> > way 
> >> > this could work is with a --log-file option where the filename is 
> >> > specified 
> >> > as such: --log-file=asan.%p.out (where %p is filled in with the pid). 
> >> > 
> >> > I haven't looked at the ASAN source yet, but I did scour the docs and 
> it 
> >> > doesn't seem like this is available in 
> >> > https://github.com/google/sanitizers/wiki/AddressSanitizerFlags 
> >> > 
> >> > Does this option happen to exist? 
> >> 
> >> 
> >> Hi Mark, 
> >> 
> >> The flag is log_path. Added it to wiki. 
> >> 
> >> 
> > 
> > Hi Dmitry, thank you; this solves this problem. 
> > 
> >> > Second question: Is it possible to see ASAN output on a per-thread 
> >> > level? 
> >> > Right now outputs seem to be aggregated on a per-process basis, even 
> if 
> >> > each 
> >> > process has multiple threads. 
> >> 
> >> No, there is no such option. 
> >> Asan terminates process on first error, so what output do you mean? 
> > 
> > 
> > 
> > If a given process p has t threads, I'd ideally like to see these the 
> memory 
> > issues broken out on a per-thread basis. TSAN labels different threads 
> with 
> > T1, T2, T3, etc. to show where race conditions, etc. occur. However, 
> ASAN 
>
> You can assign custom names to threads with pthread_setname_np and 
> prctl(PR_SET_NAME). 
>
> > seems to lump together issues for all threads of a given process. Is 
> there 
> > any way to see more detail about which thread had which memory issue? 
> Please 
> > note that the only memory issue I have at this point is from LSAN 
> (leaks) -- 
> > all other memory issues are fixed for me at this point. 
>
> Leaks are not tied to threads. They are process wide. So it is not 
> possible to sort them by threads. 
>
> For other bugs, like use-after-free, asan will terminate process 
> instantly. So there is no question of sorting either. 
>
>
> > Additional related question: Assuming the above situation (all ASAN 
> issues 
> > other than leaks fixed), and assuming the program runs successfully to 
> the 
> > end (correct return code, output, etc.), does LSAN do a full leak check 
> on 
> > the entire program before returning its leak report, or does it 
> sometimes 
> > exit early? I'm comparing two versions of a program, and one version 
> > apparently leaks 70% more memory than the other version. I would like to 
> > know if these totals are reliable and representative of the entire 
> program, 
> > or if this could simply be due to the fact that LSAN is exiting early in 
> one 
> > case. 
>
> I don't know. It well can be that lsan has some limit on number of 
> reported objects. So if you have lots of leaks, the report will be 
> some sampling. But I am not sure. 
>

-- 
You received this message because you are subscribed to the Google Groups 
"address-sanitizer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to