Commit Graph

129 Commits

Author SHA1 Message Date
emaste
da3764e492 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
emaste
8ec2223d5f 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
emaste
45eda7d940 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
emaste
825c974e40 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
dim
5adf2c54b3 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
gonzo
fa590f133d fix ABI detection logic: for 64-bit elf objects set default ABI to n64. 2012-03-19 03:27:08 +00:00
dim
b17841f4d2 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
jmallett
aea1dfe9df Note two shortcomings of GDB on MIPS that should be addressed. 2012-03-13 04:50:41 +00:00
marius
446800d166 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
andreast
33e551a6c8 - 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
emaste
a9dfc99bf2 Remove stray semicolon. This fix appears in later upstream gdb versions.
Submitted by:	eadler
2011-03-09 02:23:21 +00:00
dim
58abb279f5 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
dim
71b42433f6 Sync: merge r215464 through r215708 from ^/head. 2010-11-22 20:52:18 +00:00
attilio
7718cbcbf4 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
dim
37e5085724 Sync: merge r214895 through r215140 from ^/head. 2010-11-11 20:52:24 +00:00
gonzo
ce9c2777c8 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
gonzo
b78f92028d Calculate offset from frame top for registers saved on a stack frame. 2010-11-07 20:37:25 +00:00
dim
59096cdbb0 Sync: merge r214649 through r214894 from ^/head. 2010-11-06 18:36:21 +00:00
gonzo
ec06566969 - Add ELF core for FreeBSD/mips
- Register all known cores in init function
2010-11-02 01:26:21 +00:00
gonzo
7228da9275 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
dim
b18c51783b 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
nwhitehorn
5d21d768b2 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
rrs
dce929d3e9 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
rrs
05a9cdef84 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
avg
76ddf57429 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
emaste
c51d7427dc - Use gdb-* glob instead of gdb-6.1.1, to simplify future imports.
- Add a few entries for additional files from later gdb releases that
  should also be ignored.
2009-04-07 20:15:51 +00:00
raj
ee3d6ade2e 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
obrien
cbf66fbd28 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
obrien
ab64c505c7 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
667272457b Define supply_gregset() and supply_fpregset(). They are needed
by our threading support.
2007-05-01 18:26:22 +00:00
marcel
39626562f7 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
e1ca5f48d2 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
f820e4f79e 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
c21bc3bcaf Update for PowerPC support. We need to keep rs6000 related files. 2006-08-23 03:30:33 +00:00
marcel
b5a4404d7d 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
4e65ec3994 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
937dc493cf 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
davidxu
06718ccca1 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
b413f385c8 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
c55932b68d This file was not used to import gdb. Remove. 2004-07-19 00:20:33 +00:00
marcel
95daec2121 Remove fbsd-thread.o, it's not for consumption yet. 2004-06-25 22:57:56 +00:00
marcel
b40a3c5a45 Update HEAD with support for ia64. 2004-06-25 05:37:08 +00:00
marcel
4e5af60dad 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
b9baf21492 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
marcel
adcc0861a6 Update the upgrade instructions. 2004-06-25 05:04:09 +00:00
marcel
37de53b718 Remove from HEAD, that what is not on the vendor branch anymore. 2004-06-20 20:40:44 +00:00
marcel
f334d93656 Revive files which were pulled from the vendor branch only to be
removed on HEAD, but which are part of the GDB 6.1.1 import. This
makes HEAD identical to the vendor branch, for better or for
worse.
2004-06-20 20:36:15 +00:00
marcel
78a152dbb1 Update to GDB 6.1.1. These files are identical to the vendor branch. 2004-06-20 19:47:29 +00:00
marcel
c457f5e534 Update to match the GDB 6.1.1 import. 2004-06-20 19:15:58 +00:00
marcel
620d7edb52 Remove files from the vendor branch that are not part of the GDB 6.1.1
import.
2004-06-20 19:05:30 +00:00