1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-06-03 01:32:38 +02:00
Commit graph

26 commits

Author SHA1 Message Date
Tommi Rantala 8d5b1aeeff SuperH port
Add support for the 32bit SuperH architecture running Linux.
Specifically, support is added for SH4, and support for earlier SH
versions and to the 64bit SH5 are left out. This was tested in qemu with
a little-endian SH4 debian image & GCC 4.7 cross compiler.
2012-09-28 14:50:03 +03:00
Tommi Rantala 79c2c254a7 MIPS coredump support
Add MIPS support to the coredump library. Explicit support for the MIPS
program counter register is added so that we can start backtracing from
the program counter value we read from a core dump. The PC register
support was not strictly required for local backtracing, and we will in
fact just plug the return address to the PC register in getcontext().

I have only tested the 32bit "OABI" paths.
2012-09-28 14:50:03 +03:00
Arun Sharma e4b24be9c2 pkg-config file fixups
Suggested-by: Alexander Toresson <alexander.toresson@gmail.com>
2012-09-21 22:46:01 -07:00
Alexander Toresson ea5e90fd9f Create and install pkg-config .pc files
[Edit: renamed to libunwind-generic.pc and some .pc files
 created only when needed -- asharma@fb.com]
2012-09-15 11:34:43 -07:00
Arun Sharma 58db35eceb Silence a compiler error. 2012-09-08 21:41:52 -07:00
Tommi Rantala c2f7574187 Rename and share `ALIGN' macro from _UCD_internal.h
Rename the `ALIGN' macro to `UNW_ALIGN', and move it from
`_UCD_internal.h' to `libunwind_i.h' so that we can share it with the
mempool code. `ALIGN' was clashing with system headers on FreeBSD:

In file included from src/coredump/_UCD_access_reg_freebsd.c:26:
src/coredump/_UCD_internal.h:102:1: warning: "ALIGN" redefined
In file included from /usr/include/sys/param.h:115,
                 from src/coredump/_UCD_lib.h:52,
                 from src/coredump/_UCD_access_reg_freebsd.c:24:
/usr/include/machine/param.h:79:1: warning: this is the location of the previous definition
2012-09-05 14:02:36 +03:00
Tommi Rantala 21ad2c19ea Implement _UCD_access_reg() for ARM
Implement the Linux version of _UCD_access_reg() for ARM. We can
sidestep the register number remapping, as the libunwind register
numbers match one-to-one to the ELF core file register numbers.
2012-09-04 14:58:38 +03:00
Tommi Rantala 7e5cab6dac Add missing newline to debug message in _UCD_access_reg_linux.c 2012-08-21 23:04:07 +03:00
Tommi Rantala e61c6f69c3 Fix function name duplication in Debug() output
Fix function name duplication in Debug() output that was caused by
manually prepending the debug message with the function name.
2012-08-21 23:04:07 +03:00
Tommi Rantala 2d750952a5 Use constants for ELF magic bytes in _UCD_create.c 2012-08-21 22:30:47 +03:00
Tommi Rantala 5d36914c9b IA64: use tdep_find_unwind_table() in coredump lib
Fixup commit d93d96ad83 ("Fix compilation
on IA64"), and replace the dwarf_find_unwind_table() call with
tdep_find_unwind_table().

Fixes linkage error on IA64:
../src/.libs/libunwind-coredump.so: undefined reference to `dwarf_find_unwind_table'
2012-07-31 16:21:15 +03:00
Arun Sharma bc056ffc9f coredump: update license to be the same as rest of libunwind
Per Denys Vlasenko <dvlasenk@redhat.com>:

Sure. It's a trivial file, I don't mind if you use
whatever license you like on it :)
2012-03-26 19:07:58 -07:00
Alexander Larsson edcc521a0e Add helper macros for pointer arithmetics
ALIGN lets you align pointers and STRUCT_MEMBER lets you get
structure members at a specific offset.

These are useful in general, and will be needed for the coredump notes
cleanup work.
2012-03-26 19:04:01 -07:00
Alexander Larsson b1393b7e63 Clean up the elf notes handling in the coredump code
We centralize the elf notes handling code in some macros, thus
simplifying the loops over the notes and avoiding code duplication.
2012-03-26 18:59:49 -07:00
Arun Sharma 0628a9872c Whitespace cleanup 2012-03-23 22:34:42 -07:00
Alexander Larsson 0c0ea23cf2 Add support for multiple threads in core files
_UCD_select_thread() lets you select the active thread from
the core file and _UCD_get_num_threads() tells you how many there are.
2012-03-23 22:07:17 -07:00
Alexander Larsson d627481783 Break out the ifdefs for the UCD_info.prstatus type
This cleans up the code a bit and makes it easier to refer to
the prstatus type in other places.
2012-03-23 22:07:14 -07:00
Alexander Larsson b9ff650a22 Add _UCD_get_pid and _UCD_get_cursig
These let you get the pid and the current signal from the coredump.

This isn't strictly unwind related, but these are trivial to implement
as we have the info, and you almost always want these when you're
printing a backtrace from a core file.
2012-03-23 22:07:11 -07:00
Alexander Larsson adbeb79155 Fix build with --enable-debug
This just fixes a typo
2012-03-23 22:07:07 -07:00
Kostik Belousov cc7c74e691 On FreeBSD, the structure is called prstatus. 2012-03-13 18:15:39 +02:00
Kostik Belousov dc9be1a97a Implement register read for FreeBSD coredumps.
Rename _UCD_access_reg.c to _UCD_access_reg_linux.c, to have
per-OS coredump register reader.
2012-03-13 14:00:01 +02:00
Kostik Belousov 1e6959a769 Shut down compiler warning about format mismatch. 2012-03-13 13:17:07 +02:00
Kostik Belousov e8eb583450 Handle byteswap.h and endian.h inclusion. 2012-03-13 13:09:25 +02:00
Arun Sharma f0bb806ecb Move the test case to tests dir. 2012-03-12 20:11:49 -07:00
Arun Sharma 0f17b52171 Fixup regnames on x64 2012-03-12 20:11:49 -07:00
Arun Sharma b08ae72d6c Add support for unwinding coredump images
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2012-03-12 20:11:08 -07:00