13 листопада 2009 о 15:21 +0100 Kurt Roeckx написав(-ла): > So my understanding of the code is that it gets a list of path's > to look at. It does: > const Dwfl_Callbacks *const cb = mod->dwfl->callbacks; > char *path = strdupa ((cb->debuginfo_path ? *cb->debuginfo_path : NULL) > ?: DEFAULT_DEBUGINFO_PATH); > > And the default is: > libdwflP.h:#define DEFAULT_DEBUGINFO_PATH ":.debug:/usr/lib/debug" > > systemtap seems to be changing the debuginfo_path. Yes, it changes it to "+:.debug:/usr/lib/debug:build" or to $SYSTEMTAP_DEBUGINFO_PATH if it is set. I tried to set SYSTEMTAP_DEBUGINFO_PATH to different values and found that libdw stops trying to open files after empty directory. For example it finds debuginfo (and crashes systemtap) if i remove first colon. Or move it to the end. Comment in find-debuginfo.c says: /* An empty entry says to try the main file's directory. */ So systemtap's debuginfo_path looks correct.
signature.asc
Description: Digital signature