diff options
author | Chih-Hung Hsieh <chh@google.com> | 2015-09-24 15:42:30 -0700 |
---|---|---|
committer | Chih-hung Hsieh <chh@google.com> | 2015-09-24 23:25:36 +0000 |
commit | 5eafdf0f9bfd9a3c5f93414ac16bb399b6da0b7f (patch) | |
tree | 7d9031ee3d5796de4a1825892fc6e04ba6e36ae2 /tests/debuglink.c | |
parent | d03895cf5f8b77c6a85abcd84ea0d80ff56be846 (diff) | |
download | android_external_elfutils-5eafdf0f9bfd9a3c5f93414ac16bb399b6da0b7f.tar.gz android_external_elfutils-5eafdf0f9bfd9a3c5f93414ac16bb399b6da0b7f.tar.bz2 android_external_elfutils-5eafdf0f9bfd9a3c5f93414ac16bb399b6da0b7f.zip |
Move files up to match upstream source structure.
To create an upstream-master branch later and keep track
of upstream changes.
* src/Android.mk file is deleted because ./Android.mk
is identical and serves the same purpose.
* ./Makefile.am is moved from old src/Makefile.am,
and new src/Makefile.am is from old src/src/Makefile.am.
Similarly, ./ChangeLog is moved from old src/ChangeLog,
and new src/ChangeLog is from old src/src/ChangeLog.
* Remove unnecessary files that were generated by
autoconf or configure.
Change-Id: Iafc67d1e80f9d7ad2a74bc851bf9ca9e87205336
Diffstat (limited to 'tests/debuglink.c')
-rw-r--r-- | tests/debuglink.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/tests/debuglink.c b/tests/debuglink.c new file mode 100644 index 00000000..935d1029 --- /dev/null +++ b/tests/debuglink.c @@ -0,0 +1,64 @@ +/* Test program for dwelf_elf_gnu_debuglink, print name and crc. + Copyright (C) 2014 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> +#include <assert.h> +#include <inttypes.h> +#include <errno.h> +#include ELFUTILS_HEADER(dwelf) +#include <stdio.h> +#include <error.h> +#include <string.h> +#include <stdlib.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <unistd.h> + +int +main (int argc, char *argv[]) +{ + if (argc < 2) + error (EXIT_FAILURE, 0, "No input file given"); + + elf_version (EV_CURRENT); + + for (int i = 1; i < argc; i++) + { + const char *file = argv[i]; + int fd = open (file, O_RDONLY); + if (fd < 0) + error (EXIT_FAILURE, errno, "couldn't open file '%s'", file); + + Elf *elf = elf_begin (fd, ELF_C_READ, NULL); + if (elf == NULL) + error (EXIT_FAILURE, 0, "elf_begin failed for '%s': %s", + file, elf_errmsg (-1)); + + GElf_Word crc; + const char *debug = dwelf_elf_gnu_debuglink (elf, &crc); + if (debug == NULL) + printf ("%s: <no gnu_debuglink file>\n", file); + else + printf ("%s: %s, crc: %" PRIx32 "\n", file, debug, crc); + + elf_end (elf); + close (fd); + } + + return 0; +} |