summaryrefslogtreecommitdiffstats
path: root/tests/allfcts.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/allfcts.c')
-rw-r--r--tests/allfcts.c51
1 files changed, 34 insertions, 17 deletions
diff --git a/tests/allfcts.c b/tests/allfcts.c
index d3c8d26a..30609efb 100644
--- a/tests/allfcts.c
+++ b/tests/allfcts.c
@@ -18,12 +18,14 @@
# include <config.h>
#endif
-#include <err.h>
+#include <errno.h>
#include <fcntl.h>
#include ELFUTILS_HEADER(dw)
#include ELFUTILS_HEADER(dwelf)
#include <stdio.h>
#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
static int
@@ -47,16 +49,24 @@ setup_alt (Dwarf *main)
ssize_t ret = dwelf_dwarf_gnu_debugaltlink (main, &alt_name, &build_id);
if (ret == 0)
return NULL;
- if (ret == -1)
- errx (1, "dwelf_dwarf_gnu_debugaltlink: %s", dwarf_errmsg (-1));
- int fd = open (alt_name, O_RDONLY);
- if (fd < 0)
- err (1, "open (%s)", alt_name);
+ if (ret == -1) {
+ fprintf (stderr, "allfcts: dwelf_dwarf_gnu_debugaltlink: %s\n", dwarf_errmsg (-1));
+ exit(1);
+ }
+ int fd = open (alt_name, O_RDONLY | O_BINARY);
+ if (fd < 0) {
+ fprintf (stderr, "allfcts: open (%s): %s\n", alt_name, strerror(errno));
+ exit(1);
+ }
Dwarf *dbg_alt = dwarf_begin (fd, DWARF_C_READ);
- if (dbg_alt == NULL)
- errx (1, "dwarf_begin (%s): %s", alt_name, dwarf_errmsg (-1));
- if (elf_cntl (dwarf_getelf (dbg_alt), ELF_C_FDREAD) != 0)
- errx (1, "elf_cntl (%s, ELF_C_FDREAD): %s", alt_name, elf_errmsg (-1));
+ if (dbg_alt == NULL) {
+ fprintf (stderr, "dwarf_begin (%s): %s\n", alt_name, dwarf_errmsg (-1));
+ exit(1);
+ }
+ if (elf_cntl (dwarf_getelf (dbg_alt), ELF_C_FDREAD) != 0) {
+ fprintf (stderr, "elf_cntl (%s, ELF_C_FDREAD): %s\n", alt_name, elf_errmsg (-1));
+ exit(1);
+ }
close (fd);
dwarf_setalt (main, dbg_alt);
return dbg_alt;
@@ -67,9 +77,11 @@ main (int argc, char *argv[])
{
for (int i = 1; i < argc; ++i)
{
- int fd = open (argv[i], O_RDONLY);
- if (fd < 0)
- err (1, "open (%s)", argv[i]);
+ int fd = open (argv[i], O_RDONLY | O_BINARY);
+ if (fd < 0) {
+ fprintf (stderr, "open (%s): %s\n", argv[i], strerror(errno));
+ exit(1);
+ }
Dwarf *dbg = dwarf_begin (fd, DWARF_C_READ);
if (dbg != NULL)
@@ -89,9 +101,11 @@ main (int argc, char *argv[])
do
{
doff = dwarf_getfuncs (die, cb, NULL, doff);
- if (dwarf_errno () != 0)
- errx (1, "dwarf_getfuncs (%s): %s",
- argv[i], dwarf_errmsg (-1));
+ if (dwarf_errno () != 0) {
+ fprintf (stderr, "dwarf_getfuncs (%s): %s\n",
+ argv[i], dwarf_errmsg (-1));
+ exit(1);
+ }
}
while (doff != 0);
@@ -102,7 +116,10 @@ main (int argc, char *argv[])
dwarf_end (dbg);
}
else
- errx (1, "dwarf_begin (%s): %s", argv[i], dwarf_errmsg (-1));
+ {
+ fprintf (stderr, "dwarf_begin (%s): %s\n", argv[i], dwarf_errmsg (-1));
+ exit(1);
+ }
close (fd);
}