Commit Graph

22 Commits

Author SHA1 Message Date
Ian Lance Taylor
e561a9920c Add support for tracing through shared libraries.
* configure.ac: Check for link.h and dl_iterate_phdr.
	* elf.c: #include <link.h> if system has dl_iterate_phdr.  #undef
	ELF macros before #defining them.
	(dl_phdr_info, dl_iterate_phdr): Define if system does not have
	dl_iterate_phdr.
	(struct elf_syminfo_data): Add next field.
	(elf_initialize_syminfo): Initialize next field.
	(elf_add_syminfo_data): New static function.
	(elf_add): New static function, broken out of
	backtrace_initialize.  Call backtrace_dwarf_add instead of
	backtrace_dwarf_initialize.
	(struct phdr_data): Define.
	(phdr_callback): New static function.
	(backtrace_initialize): Call elf_add.
	* dwarf.c (struct dwarf_data): Add next and base_address fields.
	(add_unit_addr): Add base_address parameter.  Change all callers.
	(add_unit_ranges, build_address_map): Likewise.
	(add_line): Add ddata parameter.  Change all callers.
	(read_line_program, add_function_range): Likewise.
	(dwarf_lookup_pc): New static function, broken out of
	dwarf_fileline.
	(dwarf_fileline): Call dwarf_lookup_pc.
	(build_dwarf_data): New static function.
	(backtrace_dwarf_add): New function.
	(backtrace_dwarf_initialize): Remove.
	* internal.h (backtrace_dwarf_initialize): Don't declare.
	(backtrace_dwarf_add): Declare.
	* configure, config.h.in: Rebuild.

From-SVN: r192267
2012-10-09 18:20:45 +00:00
Gerald Pfeifer
068ef6d10d * btest.c (f23): Avoid uninitialized variable warning.
From-SVN: r192102
2012-10-04 20:16:08 +00:00
Ian Lance Taylor
244e2d9cd3 dwarf.c: If the system header files do not declare strnlen, provide our own version.
* dwarf.c: If the system header files do not declare strnlen,
	provide our own version.

From-SVN: r192082
2012-10-04 15:16:09 +00:00
Ian Lance Taylor
be4ba8aef3 dwarf.c (read_uleb128): Fix overflow test.
* dwarf.c (read_uleb128): Fix overflow test.
	(read_sleb128): Likewise.
	(build_address_map): Don't change unit_buf.start.

From-SVN: r192053
2012-10-03 22:07:12 +00:00
Uros Bizjak
faf86a02f3 ChangeLog: Fix whitespace.
* gcc/ChangeLog: Fix whitespace.
	* libbacktrace/ChangeLog: Ditto.

From-SVN: r191982
2012-10-02 15:28:40 +02:00
Uros Bizjak
5619500911 re PR other/54761 (FAIL log)
PR other/54761
        * configure.ac (EXTRA_FLAGS): New.
	* Makefile.am (AM_FLAGS): Add $(EXTRA_FLAGS).
        * configure, Makefile.in: Regenerate.

From-SVN: r191981
2012-10-02 15:14:25 +02:00
Ian Lance Taylor
8a447b3d4d re PR other/54749 (libbacktrace)
PR other/54749
	* fileline.c (fileline_initialize): Pass errnum as -1 when
	reporting that we could not read executable information after a
	previous failure.

From-SVN: r191855
2012-09-29 17:50:54 +00:00
Ian Lance Taylor
af710874e9 re PR bootstrap/54732 (Installation failure: libbacktrace rebuilds upon install when built with "make bootstrap-lean")
PR bootstrap/54732
	* configure.ac: Add no-dependencies to AM_INIT_AUTOMAKE.
	* Makefile.am: Add dependencies for all objects.
	* configure, aclocal.m4, Makefile.in: Rebuild.

From-SVN: r191819
2012-09-28 06:13:00 +00:00
Ian Lance Taylor
588f4f8fc1 re PR other/54726 (libbacktrace segfaults on gcc_asserts with stripped gcc)
PR other/54726
	* elf.c (backtrace_initialize): Set *fileln_fn, not
	state->fileln_fn.

From-SVN: r191811
2012-09-27 19:20:49 +00:00
Ian Lance Taylor
64b89453bc configure.ac: Only use GCC_CHECK_UNWIND_GETIPINFO when compiled as a target library.
* configure.ac: Only use GCC_CHECK_UNWIND_GETIPINFO when compiled
	as a target library.
	* configure: Rebuild.

From-SVN: r191503
2012-09-19 22:57:53 +00:00
Rainer Orth
768505569c configure.ac (GCC_HEADER_STDINT): Invoke.
* configure.ac (GCC_HEADER_STDINT): Invoke.
        * backtrace.h: If we can't find <stdint.h>, use "gstdint.h".
        * btest.c: Don't include <stdint.h>.
        * dwarf.c: Likewise.
        * configure, aclocal.m4, Makefile.in, config.h.in: Rebuild.

Co-Authored-By: Ian Lance Taylor <iant@google.com>

From-SVN: r191474
2012-09-19 13:41:33 +00:00
Ian Lance Taylor
9425c00b8e re PR bootstrap/54623 (install fails with libbacktrace/backtrace.c:35:20: error: unwind.h: No such file or directory)
PR bootstrap/54623
	* Makefile.am (AM_CPPFLAGS): Define.
	(AM_CFLAGS): Remove -I options.
	* Makefile.in: Rebuild.

From-SVN: r191459
2012-09-19 04:37:40 +00:00
Ian Lance Taylor
3319ef17d2 posix.c (O_BINARY): Define if not defined.
* posix.c (O_BINARY): Define if not defined.
	(backtrace_open): Pass O_BINARY to open.  Only call fcntl if
	HAVE_FCNTL is defined.
	* configure.ac: Test for the fcntl function.
	* configure, config.h.in: Rebuild.

From-SVN: r191443
2012-09-18 18:06:28 +00:00
Ian Lance Taylor
bd3e497d0b * btest.c (test1, test2, test3, test4): Add the unused attribute.
From-SVN: r191440
2012-09-18 17:10:01 +00:00
Ian Lance Taylor
30e15876ff * dwarf.c: Correct test of HAVE_DECL_STRNLEN.
From-SVN: r191437
2012-09-18 16:50:29 +00:00
Ian Lance Taylor
d4c059d582 configure.ac: Add AC_USE_SYSTEM_EXTENSIONS.
* configure.ac: Add AC_USE_SYSTEM_EXTENSIONS.
	* mmapio.c: Don't define _GNU_SOURCE.
	* configure, config.h.in: Rebuild.

From-SVN: r191435
2012-09-18 16:36:48 +00:00
Ian Lance Taylor
772a71a959 configure.ac: Check whether strnlen is declared.
* configure.ac: Check whether strnlen is declared.
	* dwarf.c: Declare strnlen if not declared.
	* configure, config.h.in: Rebuild.

From-SVN: r191433
2012-09-18 16:06:53 +00:00
Rainer Orth
c0558468b8 Fix libbacktrace bootstrap with gcc 4.4
* fileline.c: Include <stdlib.h>.
	* mmap.c: Likewise.

From-SVN: r191414
2012-09-18 09:02:50 +00:00
Ian Lance Taylor
c5812e0b33 re PR bootstrap/54611 (Bootstrap failure: conflicting types for 'backtrace_simple')
PR bootstrap/54611
	* nounwind.c (backtrace_full): Rename from backtrace.  Add state
	parameter.

From-SVN: r191408
2012-09-17 21:14:51 +00:00
Gerald Pfeifer
e8f4008a9e re PR bootstrap/54611 (Bootstrap failure: conflicting types for 'backtrace_simple')
PR bootstrap/54611
	* nounwind.c (backtrace_simple): Add state parameter.

From-SVN: r191405
2012-09-17 20:57:16 +00:00
Ian Lance Taylor
f588eb27dd re PR bootstrap/54609 (libbacktrace breaks bootstrap on darwin)
PR bootstrap/54609
	* unknown.c (unknown_fileline): Add state parameter, remove
	fileline_data parameter, name error_callback parameter.
	(backtrace_initialize): Add state parameter.

From-SVN: r191402
2012-09-17 17:43:26 +00:00
Ian Lance Taylor
eff02e4f84 libbacktrace/:
* Initial implementation.

./:
	* MAINTAINERS (Various Maintainers): Add libbacktrace.
	* configure.ac (host_libs): Add libbacktrace.
	(target_libraries): Add libbacktrace.
	* Makefile.def (host_modules): Add libbacktrace.
	(target_modules): Likewise.
	* configure, Makefile.in: Rebuild.

gcc/go:
	* config-lang.in (target_libs): Add target-libbacktrace.

From-SVN: r191397
2012-09-17 16:38:38 +00:00