summaryrefslogtreecommitdiff
path: root/libbacktrace/fileline.c
diff options
context:
space:
mode:
authorTony Reix <tony.reix@atos.net>2017-07-21 18:05:08 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2017-07-21 18:05:08 +0000
commitb3530b946f208bb581d2bcba2b311331a70bb97f (patch)
tree88ddb70d8e7d40f7a99e8fab445d41cce28e90b5 /libbacktrace/fileline.c
parent60f80e6541b845a20827b8584d8c276f54ed7506 (diff)
filetype.awk: Add AIX XCOFF type detection.
* filetype.awk: Add AIX XCOFF type detection. * configure.ac: Recognize xcoff format. * Makefile.am (FORMAT_FILES): Add xcoff.c. * fileline.c: Include <unistd.h>. (fileline_initialize): Add case for AIX procfs. * xcoff.c: New file. * configure, Makefile.in: Rebuild. From-SVN: r250435
Diffstat (limited to 'libbacktrace/fileline.c')
-rw-r--r--libbacktrace/fileline.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libbacktrace/fileline.c b/libbacktrace/fileline.c
index 0fd350a30c9..303e4dce83a 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 ();
}