I've got a few cores where report_r_debug() in link_map.c fails to find all of the modules - for example I had libc.so missing. This obviously meant that elfutils could not backtrace my core.
It seems to be related to this code: /* There can't be more elements in the link_map list than there are segments. DWFL->lookup_elts is probably twice that number, so it is certainly above the upper bound. If we iterate too many times, there must be a loop in the pointers due to link_map clobberation. */ size_t iterations = 0; while (next != 0 && ++iterations < dwfl->lookup_elts) I've changed this to just keep going until it reaches dwfl->lookup_elts*5, which seems to "fix" it, but I feel there must be a better fix! The most recent core I saw with this had lookup_elts=36, and hit 109 iterations of the loop and then backtraced just fine. Thanks! Luke