On 23 September 2017 at 18:38, Jeff King <peff@xxxxxxxx> wrote: > On Sat, Sep 23, 2017 at 12:13:16PM -0400, Jeff King wrote: > >> In theory you should be able to just add "log_path=/tmp/lsan/output" to >> that, which should put all the logs in a convenient place (and stop the >> extra output from confusing any tests which capture stderr). But I can't >> seem to get log_path to do anything, contrary to the documentation. >> >> Doing log_to_syslog=1 does work for me. I'm not sure if it's a bug or >> I'm holding it wrong. But it does seem like it should be possible to do >> what you want. > > Hrm. log_path doesn't seem to work for me directly from LSAN_OPTIONS. > But if you compile with ASan, it _does_ work from there. That seems like > a bug from my reading of the documentation, but maybe I'm missing > something. > > Anyway, doing: > > ASAN_OPTIONS=detect_leaks=1:abort_on_error=0:exitcode=0:log_path=/tmp/lsan/output \ > make SANITIZE=address,leak test > > should pass the whole suite and give you a host of files to analyze. Thanks. My reading of the documentation was off. Turns out exitcode=0 does not set the exit code to 0, but rather turns it off. Duh. It also didn't help that I tested with (my) gcc, which seems to have some issues. With clang, things work fine. Thanks for looking into this. > I'm not sure of the best way to count things. Right. It's a tricky problem. And in the end, all we find out is where we allocate and how we got there. Exactly where we lose/leak that piece of allocated memory is another question...