Commit graph

19323 commits

Author SHA1 Message Date
Joel Brobecker
2590b6456f Add comments in ravenscar_sparc_fetch_registers.
gdb/ChangeLog:

	* ravenscar-sparc-thread.c (ravenscar_sparc_fetch_registers):
	Add comments.
2012-10-24 19:08:16 +00:00
Joel Brobecker
bed0c24398 remote packet sent after Ravenscar inferior exited
When debugging a program using the Ravenscar profile, the debugger
sometimes tries to send the following packet to the remote after
the inferior exited.

     (gdb) c
     Continuing.
     [...]
     Sending packet: $vCont;c:1#13...Ack
     Packet received: W00
     Sending packet: $Hg1#e0...putpkt: write failed: Broken pipe.

As the inferior exited, the remote has already disconnected, and thus
the operation fails.

The reason why GDB sends the package is because the ravenscar-thread
module tries to updates the list of threads.  But this doesn't make
sense, since the program has exited.  This patch fixes it.

gdb/ChangeLog:

        * ravenscar-thread.c (ravenscar_wait): Only update the list
        of threads and inferior_ptid if the inferior is still alive.
2012-10-24 18:19:50 +00:00
Joel Brobecker
f69c91ad24 [Ada] use lbasename when testing if file is part of Ada runtime.
We use a list of regular expressions to match a symtab filenames
against the names of the files in the Ada runtime.  These regular
expressions do assume that the filename is a basename, however.
So make sure to evaluate these regular expressions against
the symtab's filename.

Without this patch, we run into problems when the Ada runtime was built
using a project file (through gprbuild).

gdb/ChangeLog:

        * ada-lang.c (is_known_support_routine): Use lbasename when
        matching the symtab's filename against
        known_runtime_file_name_patterns.
2012-10-24 18:17:22 +00:00
Joel Brobecker
d99dcf51e1 [Ada] Allow assignment to wide string.
Given the following variable declaration...

   Www : Wide_String := "12345";

... this patch allows the following assignment to work:

   (gdb) set variable www := "qwert"

Without this patch, the debugger rejects the assignment because
the size of the array elements are different:

   (gdb) set www := "asdfg"
   Incompatible types in assignment

(on the lhs, we have an array of 2-bytes elements, and on the rhs,
we have a standard 1-byte string).

gdb/ChangeLog:

        * ada-lang.c (ada_same_array_size_p): New function.
        (ada_promote_array_of_integrals): New function.
        (coerce_for_assign): Add handling of arrays where the elements
        are integrals of a smaller size than the size of the target
        array element type.

gdb/testsuite/ChangeLog:

        * gdb.ada/set_wstr: New testcase.
2012-10-24 18:14:23 +00:00
Joel Brobecker
3256027470 off-by-one max exponent computation in convert_doublest_to_floatformat
Assuming the following variable definition:

    long double inp = 2.0;

On platforms where "long double" is a double precision IEEE flaoting
point, GDB currently behaves as follow:

    (gdb) set variable inp = 1.6e+308l
    (gdb) p inp
    $2 = inf   <<<<---- !!!!

Instead, the value of "inp" should be printed as:

    (gdb) p inp
    $1 = 1.6e+308

The problem is due to a small error in the comparison of the exponent
versus the maximum value this exponent can take, causing us to think
that the value was too big to fit. But it isn't.

gdb/ChangeLog:

        * doublest.c (convert_doublest_to_floatformat): Fix comparison
        against maximum exponent value.

gdb/testsuite/ChangeLog:

        * gdb.base/ldbl_e308.c, gdb.base/ldbl_e308.exp: New files.
2012-10-24 18:11:21 +00:00
Joel Brobecker
5a04cc987f [Ada] Skip unwind-seh.c when searching first "user" frame
On x86_64-windows with GCC 4.7 (using native SEH info), the debugger
behaves as follow:

    (gdb) catch exception unhandled
    Catchpoint 1: unhandled Ada exceptions
    (gdb) run
    Starting program: C:\[...]\b.exe

    Catchpoint 1, unhandled CONSTRAINT_ERROR at 0x000000000040cc57 in _GCC_specific_handler ([...]) at ../../../src/libgcc/unwind-seh.c:289
    [...]

This is after compiler the following code:

    procedure B is
    begin
       raise Constraint_Error;
    end B;

... using the following command:

    % gnatmake -g b

When hitting the exception catchpoint, it should have gone up the stack
all the way until finding the frame corresponding to procedure B.
But if stopped short because unwind-seh.c is compiled with debugging
information, and the debugger is also able to locate that source file.

To prevent this from happening, this patch adds unwind-seh.c to the list
of files that should be ignored, regardless of other factors.

gdb/ChangeLog:

        * ada-lang.h (ADA_KNOWN_RUNTIME_FILE_NAME_PATTERNS): Add entry for
        "unwind-seh.c".
2012-10-24 18:08:05 +00:00
Joel Brobecker
5ded533171 [Ada] Pointers to unconstrained arrays inside variant record.
gdb/ChangeLog:

        * ada-lang.c (ada_template_to_fixed_record_type_1): Do not
        strip typedef layer when computing the fixed type's field type,
        only when computing its size.

gdb/testsuite/ChangeLog:

        * gdb.ada/unc_arr_ptr_in_var_rec: New testcase.
2012-10-24 18:06:10 +00:00
Mark Kettenis
2445fd7b3a PR gdb/12783
* i386-tdep.c (i386_return_value): Handle complex double and long
double.
2012-10-24 14:56:01 +00:00
Joel Brobecker
8f205f9c40 [Windows] run program with space in path to exe.
The following works...

    % gdb c:\path to exe\foo.exe
    (gdb) start

... unless a file or directory called "c:\path" or "c:\path to" exist.
This is what happens in the latter case:

    (gdb) start
    [...]
    Error creating process C:\path to exe\foo.exe (error 193).

This is because we are calling CreateProcess (et al) without specifying
the lpApplicationName, so Windows determines the name of the executable
using the second argument, which is the entire command line.  This
command line is a space-separated list of tokens, so the space in
the path to the executable which potentially creates an ambiguity.
The ambiguity is automatically resolved unless we're in the situation
above.

The solution, as suggested by the MSDN documentation for CreateProcess
is to quote the executable name.

gdb/ChangeLog:

        * windows-nat.c (windows_create_inferior) [!__CYGWIN__]:
        New local variable args_len.
        Quote the name of the executable when computing the command line.
2012-10-24 13:40:16 +00:00
Mark Kettenis
7f7930dd88 PR gdb/12796
PR gdb/12798
PR gdb/12800
* amd64-tdep.h (enum amd64_regnum): Add AMD64_ST1_REGNUM and
AMD64_FTAG_REGNUM.
* amd64-tdep.c (amd64_classify): Classify complex types.
(amd64_return_value): Handle the COMPLEX_X87 class.
2012-10-23 18:16:55 +00:00
Joel Brobecker
38a69d0a4d Change target-wide-charset to UTF-16 on ppc-aix.
On ppc-aix, type wchar_t is 2 bytes long, so override the default
target-wide-charset (UTF-32) with UTF-16. This allows us to print
wide characters correctly.

gdb/ChangeLog:

        * rs6000-aix-tdep.c (rs6000_aix_auto_wide_charset): New function.
        (rs6000_aix_init_osabi): Set auto_wide_charset gdbarch method.
2012-10-23 15:37:21 +00:00
Joel Brobecker
83ab93c6ea Set default target-wide-charset setting to "UTF-16" for x86_64-windows.
Type wchar_t is only 2 bytes long on x86_64-windows.

gdb/ChangeLog:

        * amd64-windows-tdep.c (amd64_windows_auto_wide_charset): New
        function.
        (amd64_windows_init_abi): Set auto_wide_charset gdbarch method
        to amd64_windows_auto_wide_charset.
2012-10-23 15:37:03 +00:00
Yao Qi
f6fbab7d1b gdb/
* event-top.c (mark_async_signal_handler_wrapper): Remove.
	* event-top.h: Remove its declaration.
	(async_request_quit): Call mark_async_signal_handler instead of
	mark_async_signal_handler_wrapper.
	(async_do_nothing, async_disconnect): Likewise.
	(async_stop_sig): Likewise.
	* remote.c (handle_remote_sigint): Likewise.
	(handle_remote_sigint_twice): Likewise.
2012-10-23 06:20:49 +00:00
Yao Qi
05fa925168 gdb/
* event-top.c (sigint_token, sighup_token): Replace 'void *'
	with 'static struct async_signal_handler *'.
	(sighup_token, sigquit_token, sigstp_token): Likewise.
2012-10-23 06:12:04 +00:00
Ali Anwar
08af7a403c Ali Anwar <ali_anwar@codesourcery.com>
* gdbarch.sh (function_list): Use 'pstring' when printing a
	variable which could return NULL.
	* gdbarch.c: Regenerate.
2012-10-22 13:35:43 +00:00
Joel Brobecker
beb4b03cbe ppc-aix osabi sniffer: Turn test of bfd flavour into assertion
Due to the way this function is registers, we know that given bfd's
flavour should always be bfd_target_xcoff_flavour, thus making
the former test always true, which means that this function should
always return GDB_OSABI_AIX, and never return GDB_OSABI_UNKNOWN.

This patch also fixes a typo detected by Tom Tromey that caused
the test itself to be completely ineffective.

gdb/ChangeLog (by Tom Tromey and Joel Brobecker):

        * rs6000-aix-tdep.c (rs6000_aix_osabi_sniffer): Replace
        inneffective if condition by gdb assertion.  Add function
        description comment.
2012-10-19 19:58:18 +00:00
Joel Brobecker
a5b1262727 Document exp_descriptor.op_name should never return NULL.
This documents a constaint that struct exp_descriptor's "op_name"
method implementation should obey.  This might not have been part
of the initial design, but is currently true of all instantiations,
and already assumed by the current users.

gdb/ChangeLog:

        * parser-defs.h (struct exp_descriptor): Document constraint
        on return value for "op_name" callbacks.
2012-10-19 19:55:56 +00:00
Tom Tromey
0b0865da62 * tracepoint.c (print_one_static_tracepoint_marker): Constify.
* symtab.c (iterate_over_some_symtabs): Constify.
	* source.h (symtab_to_fullname): Return 'const char *'.
	* source.c (symtab_to_fullname): Return 'const char *'.
	* python/py-symtab.c (stpy_fullname): Constify.
	* cli/cli-cmds.c (edit_command): Constify.
	* breakpoint.c (print_breakpoint_location)
	(update_static_tracepoint): Constify.
2012-10-18 20:14:45 +00:00
Tom Tromey
94b0e70d0c * breakpoint.c (compare_breakpoints): Fix comparison. 2012-10-18 20:12:21 +00:00
Tom Tromey
fff106847e * valprint.c (generic_emit_char, generic_printstr): Pass size of
gdb_wchar_t to convert_between_encodings.
2012-10-18 15:26:01 +00:00
Yao Qi
8de0566d7a gdb:
* breakpoint.c (invalidate_bp_value_on_memory_change): Add one
	more parameter 'inferior'.
	* corefile.c (write_memory_with_notification): Caller update.

	* mi/mi-cmd-var.c: Include "mi-main.h".
	(mi_cmd_var_assign): Set mi_suppress_notification.data_write_memory
	to 1 and restore it later.
	* mi/mi-cmds.c (mi_cmd mi_cmds): Update for "data-write-memory"
	and "data-write-memory-bytes.
	* mi/mi-interp.c: Include objfiles.h.
	(mi_interpreter_init): Call observer_attach_memory_changed.
	(mi_memory_changed): New.
	* mi/mi-main.h (struct mi_suppress_notification) <memory>:
	New field.

	* NEWS: Mention new MI notification "memory-changed".

gdb/doc:

	* observer.texi (GDB Observers): Update observer
	'memory_changed'.
	* gdb.texinfo (GDB/MI Async Records): Document for
	"memory-changed" notification.

gdb/testsuite:

	* gdb.mi/mi-memory-changed.exp: New.
2012-10-17 00:53:24 +00:00
Jan Kratochvil
6235cdd10c gdb/
* dwarf2loc.c (dwarf_expr_reg_to_entry_parameter): Remove comment.
2012-10-16 08:46:58 +00:00
Doug Evans
07540c156d New option -nh: inhibit loading of ~/.gdbinit.
* NEWS: Mention -nh.
	* main.c (captured_main): Recognize and process -nh.
	(print_gdb_help): Mention -nh.
	* gdb.1: Mention -nh.  Remove erroneous docs on -nx behavior.

	doc/
	* gdb.texinfo (Mode Options): Document -nh.
	Elaborate on docs for -nx.
2012-10-15 21:45:04 +00:00
H.J. Lu
eab09350a3 Remove sp_regnum_from_eax and pc_regnum_from_eax
PR backtrace/14646
	PR gdb/14647
	* i386-tdep.h (gdbarch_tdep): Remove sp_regnum_from_eax and
	pc_regnum_from_eax.
	* i386-tdep.c (i386_gdbarch_init): Don't use sp_regnum_from_eax
	nor pc_regnum_from_eax.
	* amd64-tdep.c (amd64_x32_init_abi): Don't set sp_regnum_from_eax
	nor pc_regnum_from_eax.
2012-10-15 20:37:39 +00:00
Jan Kratochvil
9e3a7d65fb gdb/
Fix entry values resolving in inlined frames.
	* dwarf2loc.c (dwarf_expr_reg_to_entry_parameter): Move func_addr,
	gdbarch and caller_frame initialization later.  Skip INLINE_FRAME
	entries of FRAME.

gdb/testsuite/
	Fix entry values resolving in inlined frames.
	* gdb.arch/amd64-entry-value-inline.S: New file.
	* gdb.arch/amd64-entry-value-inline.c: New file.
	* gdb.arch/amd64-entry-value-inline.exp: New file.
2012-10-15 19:15:57 +00:00
Joel Brobecker
c83393b9a8 Build with -DMS_WIN64 on amd64-windows if Python enabled...
... and building with GCC.

gdb/ChangeLog:

        * configure.ac: Build with -DMS_WIN64 if building with Python
        enabled using GCC on amd64-windows.
        * configure: Regenerate.
2012-10-15 17:17:54 +00:00
Tom Tromey
801e418523 PR python/14635:
* python/py-symtab.c (del_objfile_sal): Set 'symtab' field
	to Py_None.
testsuite
	* gdb.python/py-symtab.exp: Test sal and symtab destructors.
2012-10-15 15:23:47 +00:00
Tom Tromey
74f910c87c PR python/14634:
* python/py-symbol.c (sympy_dealloc): Check for NULL symbol.
testsuite
	* gdb.python/py-symbol.exp: Test symbol destructor.
2012-10-15 15:20:27 +00:00
Andrew Burgess
2a7c8fd5b4 http://sourceware.org/ml/gdb-patches/2012-10/msg00032.html
gdb/ChangeLog

        * remote-sim.c (gdbsim_create_inferior): Call init_thread_list to
        reset thread numbering back to 1.
2012-10-11 21:25:18 +00:00
Doug Evans
7c09e5a0f7 PR breakpoints/14643.
* linespec.c (struct ls_parser): New member keyword_ok.
	(linespec_lexer_lex_string): Add comment.
	(linespec_lexer_lex_one): Ignore keywords if it's the wrong place
	for one.
	(parse_linespec): Set keyword_ok.

	testsuite/
	* gdb.linespec/ls-errs.exp: Change tests of "b if|task|thread".
	* gdb.linespec/thread.c: New file.
	* gdb.linespec/thread.exp: New file.
2012-10-11 16:12:05 +00:00
Doug Evans
844226d69a * dwarf2read.c (process_psymtab_comp_unit_reader): Remove duplicate
"0x" prefix on address in log message.
2012-10-11 02:21:50 +00:00
Doug Evans
a1855c1db0 * dwarf2read.c (read_1_byte): Add const to buf parameter.
(read_1_signed_byte, read_2_bytes, read_2_signed_bytes): Ditto.
	(read_4_bytes, read_4_signed_bytes, read_8_bytes): Ditto.
	(lookup_dwo_file): Add const to dwo_name parameter.
	(lookup_dwo_comp_unit, lookup_dwo_type_unit): Ditto.
2012-10-11 02:07:22 +00:00
Jan Kratochvil
2e24f4aab7 gdb/
Fix crash during stepping on ppc32.
	* ppc-linux-tdep.c (powerpc_linux_in_dynsym_resolve_code): Test NULL
	SYM.

gdb/testsuite/
	Fix crash during stepping on ppc32.
	* gdb.base/step-symless.c: New file.
	* gdb.base/step-symless.exp: New file.
2012-10-06 21:10:33 +00:00
Doug Evans
aa14df2525 PR symtab/14601
* buildsym.c (buildsym_init): Reset using_directives to NULL.

	testsuite/
	* gdb.cp/using-crash.exp: New file.
	* gdb.cp/using-crash.cc: New file.
2012-10-03 17:05:00 +00:00
Andrew Burgess
3d46829657 http://sourceware.org/ml/gdb-patches/2012-10/msg00027.html
gdb/ChangeLog

        * remote-sim.c (dump_mem): Always dump buffer contents, zero fill
        output and use uint32_t not long to ensure 4 byte size.
2012-10-02 21:52:43 +00:00
Joel Brobecker
8f0ee2eb7c gdb_bfd_unref failed assertion on AIX.
Trying to run any program on AIX triggers a failed assertion:

    (gdb) run
    Starting program: /[...]/simple_main
    /[...]/gdb_bfd.c:288: internal-error: gdb_bfd_unref: Assertion `gdata->refc >= 1' failed.
    A problem internal to GDB has been detected,
    further debugging may prove unreliable.
    Quit this debugging session? (y or n)

What happens is that we have a loop where we forgot to update
the value of "last", resulting in the loop unref'ing the same
BFD over and over again. We bomb the second time around, when
triggering an assertion on the ref counter.

gdb/ChangeLog:

        * rs6000-nat.c (add_vmap): Set "last" to "next" after having
        unref'ed it.
2012-10-02 15:05:42 +00:00
Andrew Burgess
b3dc46ff7c http://sourceware.org/ml/gdb-patches/2012-09/msg00568.html
gdb/ChangeLog

        * target.c (simple_search_memory): Include access length in
        warning message.

gdb/gdbserver/ChangeLog

        * server.c (handle_search_memory_1): Include access length in
        warning message.

gdb/testsuite/ChangeLog

        Test find command on unmapped memory.
        * gdb.base/find-unmapped.c: New file.
        * gdb.base/find-unmapped.exp: New file.
2012-10-01 12:02:13 +00:00
Edjunior Barbosa Machado
f712f01fdf 2012-09-28 Nathan Miller <nathanm2@us.ibm.com>
Edjunior Machado  <emachado@linux.vnet.ibm.com>

	PR gdb/13989
	* solib.c (solib_find): Prevent GDB from loading native libraries when
	debugging a cross-target corefile.
2012-09-28 20:20:08 +00:00
Pedro Alves
39181896f1 2012-09-28 selven <pcthegreat@gmail.com>
Make definition match declaration.

	* regcache.c (regcache_register_status): Change return type to
	enum register_status.
2012-09-28 12:04:28 +00:00
Yao Qi
4c2786ba1e gdb/
* mi/mi-main.c (mi_cmd_data_write_memory): Call
	write_memory_with_notification instead of write_memory.
	(mi_cmd_data_write_memory_bytes): Call write_memory_with_notification
	instead of target_write_memory.

gdb/testsuite/
	* gdb.mi/pr11022.exp: New.
	* gdb.mi/pr11022.c: New.  Copied from gdb.base/.
2012-09-28 00:39:18 +00:00
Yao Qi
1ae0c35e7e gdb/
* mi/mi-main.c (mi_cmd_data_write_memory_bytes): Emit error
	when the length of content is not an even number.
2012-09-28 00:25:24 +00:00
Tom Tromey
7977e5d2a6 Fix https://bugzilla.redhat.com/show_bug.cgi?id=849357
* cp-valprint.c (cp_print_value_fields): Use get_vptr_fieldno.
gdb/testsuite
	* gdb.cp/derivation.exp: Add regression test.
	* gdb.cp/derivation.cc (class V_base, class V_inter, class
	V_derived): New.
	(vderived): New global.
2012-09-27 16:04:23 +00:00
Joel Brobecker
807160da3c sol-thread.c: Remove commented-out code.
gdb/ChangeLog:

        * sol-thread.c (sol_thread_fetch_registers)
        (sol_thread_store_registers): Delete commented out code.
2012-09-27 12:53:57 +00:00
Joel Brobecker
43c75337b6 New unit sparc-sol-thread.c extracted from sol-thread.c
Moving some sparc-specific routines out of sol-thread.c into their
own (new) file.

gdb/ChangeLog:

        * sol-thread.c (ps_lgetxregsize, ps_lgetxregs, ps_lsetxregs):
        Move these functions to sparc-sol-thread.c.
        * sparc-sol-thread.c: New file.
        * configure.ac: Add sparc-sol-thread.o to CONFIG_OBS and
        sparc-sol-thread.c to CONFIG_SRCS for sparc-solaris native
        configurations.
        * configure: Regenerate.
2012-09-27 12:53:44 +00:00
Joel Brobecker
d292a9723d sol-thread.c: Remove #if 0-ed code.
gdb/ChangeLog:

        * sol-thread.c (ps_lgetxregsize, ps_lgetxregs, ps_lsetxregs):
        Remove commented-out code.
2012-09-27 12:53:13 +00:00
Joel Brobecker
8c3da00317 sol-thread.c: conditionalize some sparc-specific libthread_db functions.
gdb/ChangeLog:

        * sol-thread.c (ps_lgetxregsize, ps_lgetxregs, ps_lsetxregs):
        Enable this code for sparc hosts only.
2012-09-27 12:52:53 +00:00
Joel Brobecker
f00482b603 Add procfs_find_LDT_entry declaration (procfs.h).
Add a declaration for procfs_find_LDT_entry in order to prevent
a compiler warning about this function missing one. This also
helps making sure that declaration and definition remain consistent.

gdb/ChangeLog:

        * procfs.h (procfs_find_LDT_entry): Add declaration.
        * sol-thread.c (ps_lgetLDT): Delete local declaration of
        function procfs_find_LDT_entry.
2012-09-27 12:52:10 +00:00
Joel Brobecker
337c776f02 Make procfs.c:proc_get_LDT_entry static
This function is not used outside of procfs.c.

gdb/ChangeLog:

        * procfs.c (proc_get_LDT_entry): Make static.
2012-09-27 12:51:57 +00:00
Joel Brobecker
1a04d88fbc Fix declaration of proc_find_memory_regions
This function is used as a target_ops callback. The function
implemention was recently changed, but the declaration wasn't
updated accordingly.

This fixes a build failure on Solaris.

gdb/ChangeLog:

        * procfs.c (proc_find_memory_regions): Fix declaration.
2012-09-27 12:51:40 +00:00
Siddhesh Poyarekar
bad43aa52e * amd64-tdep.c (amd64_return_value): Revert previous change
that used TYPE_LENGTH directly.
        * bfin-tdep.c (bfin_extract_return_value): Likewise.
        (bfin_store_return_value): Likewise.
        * cris-tdep.c (cris_store_return_value): Likewise.
        (cris_extract_return_value): Likewise.
        * h8300-tdep.c (h8300_extract_return_value): Likewise.
        * hppa-tdep.c (hppa64_return_value): Likewise.
        * lm32-tdep.c (lm32_store_return_value): Likewise.
        * microblaze-tdep.c (microblaze_store_return_value): Likewise.
        * spu-tdep.c (spu_value_from_register): Likewise.
        * vax-tdep.c (vax_return_value): Likewise.
2012-09-27 10:40:01 +00:00