Commit Graph

116 Commits

Author SHA1 Message Date
John-Mark Gurney
85e5839202 recognize the FreeBSD ARCH tag that is put on binaries like on armeb
EABI binaries...

MFC after:	1 week
2014-02-12 02:03:37 +00:00
Konstantin Belousov
0615c93b2c Use sysctl KERN_PROC_SIGTRAMP to retrieve the signal trampoline
location for the native amd64 ABI.  This fixes unwinding over the
signal frame after trampoline was moved to the shared page.

The code would be more correct if using sysctl for the target process
instead of inspecting gdb' own trampoline, but the current change is
least intrusive and currently, we always initialize the native ABI
sysvec first, which means that trampoline location for FreeBSD/amd64
ABI is relatively stable.

Similar change will benefit libunwind.

Analyzed by:	avg
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2013-11-26 19:54:12 +00:00
Ed Maste
73adaf3810 Fold in frame-unwind patch
After moving to svn there's no need to avoid pulling files off a vendor
branch.
2013-06-17 18:34:34 +00:00
Ed Maste
80fae82753 Include die tag in error message 2013-06-17 12:49:26 +00:00
Ed Maste
8d56b202dd Handle DW_TAG_unspecified_type
2011-11-14  Jim Ingham  <jingham@apple.com>

        * dwarf2read.c (read_type_die): Handle DW_TAG_unspecified_type.
        (read_tag_unspecified_type): New function, add a type for the
        DW_TAG_unspecified_type die.

Obtained from:	Apple, gdb-1752
2013-06-12 20:11:49 +00:00
Ed Maste
513f8c0cb8 Handle DW_TAG_rvalue_reference_type
2012-05-21  Jim Ingham <jingham@apple.com>

      * dwarf2read.c (process_die): Handle DW_TAG_rvalue_reference_type.
      (read_type_die): Ditto.
      (dwarf_tag_name): Ditto.

      * elf/dwarf2.h: Add DW_TAG_rvalue_reference_type.

Obtained from:	Apple, gdb-1820
2013-06-12 20:05:19 +00:00
Andrew Turner
b00bf67dd2 Fix the value of NT_FREEBSD_TAG to be the same as ABI_NOTRTYPE in lib/csu.
Add NT_FREEBSD_NOINIT_TAG for the value of CRT_NOINIT_NOTETYPE.
Check for both of these when detecting a FreeBSD binary in gdb.
2013-04-18 02:20:58 +00:00
Andrew Turner
42fe3ad9b1 Extend GDB to check the value in the .note.tag section along with the
.note.ABI-tag section.

This helps on ARM EABI where the OS/ABI field is zero. It would be better
to use the NOTES program header however this would require a more invasive
change.
2013-02-04 06:59:33 +00:00
Pedro F. Giffuni
646a7fea0c Clean some 'svn:executable' properties in the tree.
Submitted by:	Christoph Mallon
MFC after:	3 days
2013-01-26 22:08:21 +00:00
Ed Maste
6b926c8f45 Support restrict qualifier in dwarf debug info
Newer clang/llvm emit DW_TAG_restrict_type, which wasn't handled by gdb.
Import support from Apple's gdb-1822:

|  2009-03-24  Jason Molenda  (jmolenda@apple.com)
|
|    * gdbtypes.c (make_cv_type): Rename this function to make_cvr_type to
|    also handle restrict qualifiers.
|    (check_typedef): Handle TYPE_RESTRICT.
|    * gdbtypes.h (TYPE_FLAG_RESTRICT, TYPE_RESTRICT): New.
|    * hpread.c (hpread_type_lookup): Update to use make_cvr_type.
|    * stabsread.c (read_type): Pass the restrict qualifiers along.
|    * parse.c (follow_types): Pass the restrict qualifiers along.
|    * dwarf2read.c (read_tag_const_type): Call make_cvr_type.
|    (read_tag_volatile_type): Same.
|    (read_tag_restrict_type): New function.
|    (read_type_die): Handle DW_TAG_restrict_type.

Obtained from: Apple
Sponsored by: ADARA Networks
2012-12-19 16:23:20 +00:00
Ed Maste
c73d086b04 Do not unwind past a zero PC frame.
This improves GDB usability when debugging code compiled with
optimization.

Upstream GDB revision f0031b6d3ae9b164b3747986ab898190bd4dcf8c (prior
to GDB's switch to GPLv3), with frame_debug_got_null_frame expanded
inline.

| 2004-12-12  Andrew Cagney  <cagney@gnu.org>
|
| * frame.c (get_prev_frame): When unwinding normal frames, check
| that the PC isn't zero.

Sponsored by:	ADARA Networks
MFC After:	1 month
2012-11-13 03:05:28 +00:00
Ed Maste
b4b74d6100 Set optimized_out instead of reporting an error.
This provides a better display when debugging code compiled with
optimization on.

GDB git revision e8395b4efd184f745070afb953f451f99e922be7 (prior to GDB's
switch to GPLv3), modified for the interfaces provided by GDB 6.1.1.

2005-02-28  Daniel Jacobowitz  <dan@codesourcery.com>

 * dwarf2loc.c (loclist_read_variable): Set optimized_out
 instead of reporting an error.
 * valprint.c (value_check_printable): New function.
 (common_val_print): New function.  Use value_check_printable.
 (value_print): Use value_check_printable.
 * value.h (common_val_print): Add prototype.
 * c-valprint.c (c_val_print): Use common_val_print.
 * cp-valprint.c (cp_print_value_fields): Likewise.
 (cp_print_hpacc_virtual_table_entries): Likewise.
 * f-valprint.c (f_val_print): Likewise.
 * jv-valprint.c (java_value_print, java_print_value_fields):
 Likewise.
 * scm-valprint.c (scm_value_print): Likewise.
 * stack.c (print_frame_args): Likewise.
 * varobj.c (c_value_of_variable): Likewise.
 * p-valprint.c (pascal_val_print, pascal_value_print): Likewise.
 (pascal_object_print_value_fields): Likewise.  Update call to
 pascal_object_print_static_field.
 (pascal_object_print_static_field): Remove TYPE argument.  Use
 common_val_print.

Sponsored by:	ADARA Networks
MFC after:	1 month
2012-11-13 01:21:17 +00:00
Ed Maste
448ba34319 Fix "Corrupted DWARF expression" from (k)gdb.
Google turned up Debian bug 405116, which describes the problem in
sufficient detail to identify the overflowing variables.

MFC after:	1 week
2012-09-06 13:47:42 +00:00
Dimitry Andric
ff3657eeaf Teach gdb about the DW_FORM_flag_present dwarf attribute, so it doesn't
error out on files that contain it.  (This attribute can be emitted by
newer versions of clang.)

MFC after:	2 weeks
2012-08-29 18:37:10 +00:00
Oleksandr Tymoshenko
2de64e71fe fix ABI detection logic: for 64-bit elf objects set default ABI to n64. 2012-03-19 03:27:08 +00:00
Dimitry Andric
9c5cee130f Pull in a fix (still under GPLv2) for a double free in gdb, leading to
an assert, which can occur if you repeatedly dlopen() and dlclose() a
.so file in a tight loop.  This was reported on freebsd-current@ by
Alexandre Martins, with a sample to reproduce the behaviour.

Obtained from:	http://sourceware.org/git/?p=gdb.git;a=commit;h=a6f2cbb341520f8e100f4b8305979dd6207a79e8
2012-03-13 19:40:56 +00:00
Juli Mallett
07257b7e1c Note two shortcomings of GDB on MIPS that should be addressed. 2012-03-13 04:50:41 +00:00
Marius Strobl
6055164bb1 Implement functions necessary for compiling fbsd-threads.c.
Reviewed by:	marcel
Approved by:	re (kib)
MFC after:	1 week
2011-08-06 17:52:25 +00:00
Andreas Tobler
c81c8b1a46 - Check on target wordsize instead of compile time define if we build on
64-bit PowerPC or 32-bit PowerPC.
- Make gdb work on powerpc64, the code for this is obtained from
  ppc-linux-tdep.c.
- Remove non-elf core read functionality. Implement core read functionality
  similar like other FreeBSD targets.
- Set long double limitations.
2011-06-14 15:20:30 +00:00
Ed Maste
bdbd7b1333 Remove stray semicolon. This fix appears in later upstream gdb versions.
Submitted by:	eadler
2011-03-09 02:23:21 +00:00
Dimitry Andric
ce8fb93178 Merge binutils 2.17.50 to head. This brings a number of improvements to
x86 CPU support, better support for powerpc64, some new directives, and
many other things.  Bump __FreeBSD_version, and add a note to UPDATING.

Thanks to the many people that have helped to test this.

Obtained from:	projects/binutils-2.17
2011-02-18 20:54:12 +00:00
Dimitry Andric
a35d3535ee Sync: merge r215464 through r215708 from ^/head. 2010-11-22 20:52:18 +00:00
Attilio Rao
7f08176ee8 Add the ability for GDB to printout the thread name along with other
thread specific informations.

In order to do that, and in order to avoid KBI breakage with existing
infrastructure the following semantic is implemented:
- For live programs, a new member to the PT_LWPINFO is added (pl_tdname)
- For cores, a new ELF note is added (NT_THRMISC) that can be used for
  storing thread specific, miscellaneous, informations. Right now it is
  just popluated with a thread name.

GDB, then, retrieves the correct informations from the corefile via the
BFD interface, as it groks the ELF notes and create appropriate
pseudo-sections.

Sponsored by:	Sandvine Incorporated
Tested by:	gianni
Discussed with:	dim, kan, kib
MFC after:	2 weeks
2010-11-22 14:42:13 +00:00
Dimitry Andric
1170f3d12e Sync: merge r214895 through r215140 from ^/head. 2010-11-11 20:52:24 +00:00
Oleksandr Tymoshenko
db09d96dcb Change register numbers according to current struct reg and
struct fpreg in src/sys/mips/include/reg.h
2010-11-07 20:40:00 +00:00
Oleksandr Tymoshenko
8d4844f1ab Calculate offset from frame top for registers saved on a stack frame. 2010-11-07 20:37:25 +00:00
Dimitry Andric
eef8b03ca0 Sync: merge r214649 through r214894 from ^/head. 2010-11-06 18:36:21 +00:00
Oleksandr Tymoshenko
ea84fab2ce - Add ELF core for FreeBSD/mips
- Register all known cores in init function
2010-11-02 01:26:21 +00:00
Oleksandr Tymoshenko
6c412cffd0 Fix reading of .debug_line on MIPS64, big-endian:
read_initial_length detects pointer size by checking first
    4 bytes of .debug_line and stores it in struct comp_unit_head *
    passed to it as second argument. By passing NULL to a
    read_initial_length we ignore actual pointer size (8 bytes) and
    use default (4 bytes) which results in wrong offsets of header fields.
2010-11-02 01:24:49 +00:00
Dimitry Andric
8a8595146e Fix gdb compilation with new binutils:
bfd_get_section_size_before_reloc() has been renamed to
bfd_get_section_size().
2010-10-22 18:08:37 +00:00
Nathan Whitehorn
2cf64c8006 Teach our toolchain how to generate 64-bit PowerPC binaries. This fixes
a variety of bugs in binutils related to handling of 64-bit PPC ELF,
provides a GCC configuration for 64-bit PowerPC on FreeBSD, and
associated build systems tweaks.

Obtained from:	projects/ppc64
2010-07-10 02:29:22 +00:00
Randall Stewart
3b070a8864 Adds the missing mips gdb files that I
foobar'd on my last commit.. Sorry about
that JC.. my fault.

Obtained from:	JC
2010-02-21 17:25:00 +00:00
Randall Stewart
7e1f32462d These contain JC's patch to get gdb sort of working
on mips. Its not fully done yet but its a start.

Obtained from: JC - c.jayachandran@gmail.com

M    gnu/usr.bin/gdb/kgdb/trgt_mips.c
M    gnu/usr.bin/gdb/arch/mips/init.c
M    gnu/usr.bin/gdb/arch/mips/Makefile
M    gnu/usr.bin/Makefile
M    contrib/gdb/gdb/mips-tdep.h
2010-02-20 17:29:27 +00:00
Andriy Gapon
84056e4e85 gdb: make 'thread apply all bt' always work on all threads
even if some appear to have (partially) corrupted stack traces.
E.g. kernel crashdumps typically have stack weirdness at
userland-kernel boundary.

Obtained from:	vendor/upstream (CVS rev 1.118 of stack.c)
Reviewed by:	emaste
Approved by:	jhb
2009-06-12 14:27:50 +00:00
Rafal Jaworowski
f6d2be2556 gdb: Remove arm_pc_is_thumb_dummy() and related code.
This is basically an import of the following gdb change:
http://sourceware.org/ml/gdb-cvs/2005-03/msg00143.html (which in effect fixes
problems with gracefully closing down the non-Thumb program being debugged).
2008-11-17 16:37:04 +00:00
David E. O'Brien
df2c0c36a5 This commit was generated by cvs2svn to compensate for changes in r173619,
which included commits to RCS files with non-trunk default branches.
2007-11-14 22:58:36 +00:00
David E. O'Brien
36e24f40f9 Bring in FSF revision 1.9 (Change type of ps_strings from int to u_long).
This fixes a situation where GDB gives incorrect backtraces when a signal
handler is in the call chain.

Submitted by:	Stu Grossman <grossman@juniper.net>
2007-11-14 22:58:36 +00:00
Marcel Moolenaar
712a458010 Define supply_gregset() and supply_fpregset(). They are needed
by our threading support.
2007-05-01 18:26:22 +00:00
Marcel Moolenaar
1e7d5fbfb0 This commit was generated by cvs2svn to compensate for changes in r169185,
which included commits to RCS files with non-trunk default branches.
2007-05-01 18:26:22 +00:00
Marcel Moolenaar
929e506f33 Add support for PowerPC. These files are added onto the FSF branch
to avoid future conflicts.
2006-08-24 02:43:20 +00:00
Marcel Moolenaar
92d95d05b3 This commit was generated by cvs2svn to compensate for changes in r161561,
which included commits to RCS files with non-trunk default branches.
2006-08-24 02:43:20 +00:00
Marcel Moolenaar
0ffcd81703 Import files needed for PowerPC support and not included in the
original GDB 6.1.1 import.
2006-08-23 03:28:37 +00:00
Marcel Moolenaar
7eab377589 This commit was generated by cvs2svn to compensate for changes in r161537,
which included commits to RCS files with non-trunk default branches.
2006-08-23 03:28:37 +00:00
Marcel Moolenaar
78cf5f2fcd Abstract the handling of dirty stacked registers in ia64_read_reg() and
ia64_write_reg() and call these whenever we read or write registers from
and to memory. This way we correctly read registers from addresses in
the register cache and thus fixes backtraces when the saved registers
(such as rp and ar.pfs) are in dirty stacked registers.
2004-09-05 06:17:25 +00:00
David Xu
82552011ab Disable surplus detection of breakpoint event in signal stack, the check
causes a normal breakpoint event in new thread to be ignored unexpectly,
result is process SIGSEGV.

Test on: AMD64, i386
2004-08-15 12:31:30 +00:00
Marcel Moolenaar
4fd6e2a0c9 Various improvements for ia64:
o  s/TARGET_XFER_DIRTY/NATIVE_XFER_DIRTY/g to be conformant,
o  Handle TARGET_OBJECT_DIRTY for core files. Required on Linux,
o  Replace ia64_fbsd_supply_fpregs() and ia64_fbsd_supply_gregs()
   with supply_fpregset() and supply_gregset() resp. Needed to
   support libthread_db.
o  For target_read_partial(), pass the address of bspstore as the
   annex instead of bspstore itself. This fixes crossbuilds. The
   annex is a pointer, while bspstore is a ULONGEST.
o  In ia64_frame_prev_register(), handle dirty stacked registers.
2004-07-27 03:54:16 +00:00
Marcel Moolenaar
9a067406de Remove fbsd-thread.o, it's not for consumption yet. 2004-06-25 22:57:56 +00:00
Marcel Moolenaar
fd10b3fb49 Update HEAD with support for ia64. 2004-06-25 05:37:08 +00:00
Marcel Moolenaar
f8c1b85b49 Add support for ia64. This code will be contributed to GDB as soon
as the legal prerequisites are met. To avoid future merge conflicts,
this is added to the vendor branch. The changes are seperately kept
in FREEBSD-diffs for easy reference.
2004-06-25 05:19:25 +00:00
Marcel Moolenaar
f200cb78cf This commit was generated by cvs2svn to compensate for changes in r131082,
which included commits to RCS files with non-trunk default branches.
2004-06-25 05:19:25 +00:00