diff options
Diffstat (limited to 'libbacktrace/fileline.c')
-rw-r--r-- | libbacktrace/fileline.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libbacktrace/fileline.c b/libbacktrace/fileline.c index 0fd350a..303e4dc 100644 --- a/libbacktrace/fileline.c +++ b/libbacktrace/fileline.c @@ -37,6 +37,7 @@ POSSIBILITY OF SUCH DAMAGE. */ #include <errno.h> #include <fcntl.h> #include <stdlib.h> +#include <unistd.h> #include "backtrace.h" #include "internal.h" @@ -57,6 +58,7 @@ fileline_initialize (struct backtrace_state *state, int pass; int called_error_callback; int descriptor; + char buf[64]; if (!state->threaded) failed = state->fileline_initialization_failed; @@ -80,7 +82,7 @@ fileline_initialize (struct backtrace_state *state, descriptor = -1; called_error_callback = 0; - for (pass = 0; pass < 4; ++pass) + for (pass = 0; pass < 5; ++pass) { const char *filename; int does_not_exist; @@ -99,6 +101,10 @@ fileline_initialize (struct backtrace_state *state, case 3: filename = "/proc/curproc/file"; break; + case 4: + snprintf (buf, sizeof (buf), "/proc/%d/object/a.out", getpid ()); + filename = buf; + break; default: abort (); } |