Commit graph

26025 commits

Author SHA1 Message Date
Doug Evans
6bb85cd171 * lib/gdb.exp (gdb_compile_test): Watch for "compiler not installed"
output from gcc.
2010-03-19 17:59:37 +00:00
Doug Evans
d7d158ed1d * gdb.base/break-interp.exp (prelinkNO): Handle prelink binaries
named /usr/sbin/prelink<foo>.
2010-03-19 17:57:17 +00:00
gdbadmin
860deac3a2 *** empty log message *** 2010-03-19 00:00:03 +00:00
gdbadmin
f1ae44c904 GDB 7.1 released. 2010-03-18 22:25:24 +00:00
Stan Shebs
4daf5ac07e 2010-03-18 Stan Shebs <stan@codesourcery.com>
Pedro Alves  <pedro@codesourcery.com>

	* target.h (struct target_ops): New method
	to_set_circular_trace_buffer.
	(target_set_circular_trace_buffer): New macro.
	* target.c (update_current_target): Add
	to_set_circular_trace_buffer, fix to_set_disconnected_tracing
	default behavior.
	* remote.c (remote_set_circular_trace_buffer): New function.
	(init_remote_ops): Add it to vector.
	* tracepoint.h (struct trace_status): New field traceframes_created,
	change buffer_size and buffer_free to int.
	* tracepoint.c (circular_trace_buffer): New global.
	(start_tracing): Send values of disconnected tracing and circular
	trace buffer settings.
	(set_circular_trace_buffer): New function.
	(parse_trace_state): Handle total space and frames created.
	(trace_status_command): Display total space and total frames
	created.
	(trace_save): Write out new status values.
	(parse_trace_status): Set traceframe_count, traceframes_created,
	buffer_free and buffer_size to -1 by default.
	(_initialize_tracepoint): New setshow for circular-trace-buffer.
	* NEWS: Mention the circular trace buffer option.

	* gdb.texinfo (Starting and Stopping Trace Experiments): Describe
	circular-trace-buffer.
	(Tracepoint Packets): Describe QTBuffer, and details of the
	qTStatus reply.

	* gdb.trace/circ.exp: Test circular-trace-buffer.
	* gdb.trace/tfile.exp: Update tstatus test.
2010-03-18 21:23:35 +00:00
Joel Brobecker
e8d054800a [dwarf] Anonymous nested function causes SEGV during psymbol read
According to the DWARF3 standard, a function always has a name attribute
(Section 3.3 - Subroutine and Entry Point Entries).  The only exception
is when a DW_AT_abstract_origin attribute is provided, in which case
the name may be inherited from the referenced DIE.

The problem occured because our compiler generated a subprogram DIE
for a nested function where the name attribute was missing (and no
abstract-origin either).  Our code in add_partial_symbol is not
prepared to deal with the situation, and happily just tries  to compute
the length of the (NULL) function name.

This normally cannot happen, because there is already a guard in
scan_partial_symbols, where we (silently!) ignore anonymous dies,
including anonymous subprograms. Unfortunately, there is a flaw that
affects Ada and other languages that allow nested subprograms. For
nested subprograms, we do not go through scan_partial_symbols and
thus we are missing the name check.

This patch adds the name check in the nested subprogram case. It also
adds a complaint which is emitted during the psymtab->symtab conversion
phase.

gdb/ChangeLog:

        * dwarf2read.c (add_partial_subprogram): Make sure the subprogram
        DIE has a name before creating the associated partial symbol.
        (read_func_scope): Emit a complaint if the subprogram does not
        have a name or when we can't extract the subprogram PC bounds.

gdb/testsuite/ChangeLog:

        * gdb.dwarf2/dw2-anonymous-func.S: New file.
        * gdb.dwarf2/dw2-anonymous-func.exp: New testcase.

Tested on x86_64-linux, no regression.  Note that the testcase also
verifies that the psymtab->symtab conversion does not crash (this is
the purpose of the "list file1.txt:1" test.
2010-03-18 18:35:55 +00:00
Tom Tromey
40c549d600 * infcmd.c (finish_command_continuation): Wrap print_return_value
in TRY_CATCH.
2010-03-18 18:02:00 +00:00
Stan Shebs
1c40aa62ec Fix last checkin 2010-03-18 16:01:29 +00:00
Ulrich Weigand
441b986a3d ChangeLog:
* mi/mi-main.c (mi_cmd_list_thread_groups): Use get_current_arch
	instead of selected frame architecture.

testsuite/ChangeLog:

	* gdb.mi/gdb680.exp: Revert 2009-06-17 change.
2010-03-18 13:25:20 +00:00
Pedro Alves
4247603be5 gdb/
* infcmd.c (until_command): Use ERROR_NO_INFERIOR.  Ensure there's
	a valid selected thread, and that it is not running.
	(advance_command): Ditto.
	(finish_command): Ditto.

	gdb/testsuite/
	* gdb.base/default.exp: Adjust.
2010-03-18 13:21:40 +00:00
Stan Shebs
3a96536b17 2010-03-17 Stan Shebs <stan@codesourcery.com>
* ax-gdb.c (require_rvalue): Disallow non-scalars.
2010-03-18 01:47:33 +00:00
Stan Shebs
573cda036a 2010-03-17 Stan Shebs <stan@codesourcery.com>
* infcall.c: Include tracepoint.h.
	(call_function_by_hand): Disallow calls in tfind mode.
	* infcmd.c: Include tracepoint.h.
	(ensure_not_tfind_mode): New function.
	(continue_1): Call it.
	(step_1) Ditto.
	(jump_command): Ditto.
	(signal_command): Ditto.
	(advance_command): Ditto.
	(until_command): Ditto.
	(finish_command): Ditto.
	* tracepoint.h (disconnect_or_stop_tracing): Declare.
2010-03-18 01:09:26 +00:00
gdbadmin
d504198035 *** empty log message *** 2010-03-18 00:00:34 +00:00
Stan Shebs
400c6af037 2010-03-17 Stan Shebs <stan@codesourcery.com>
* ax-gdb.h (struct axs_value): New field optimized_out.
	(gen_trace_for_var): Add gdbarch argument.
	* ax-gdb.c (gen_trace_static_fields): New function.
	(gen_traced_pop): Call it, add gdbarch argument.
	(gen_trace_for_expr): Update call to it.
	(gen_trace_for_var): Ditto, and report optimized-out variables.
	(gen_struct_ref_recursive): Check for optimized-out value.
	(gen_struct_elt_for_reference): Ditto.
	(gen_static_field): Pass gdbarch instead of expression, assume
	optimization if field not found.
	(gen_var_ref): Set the optimized_out flag.
	(gen_expr): Error on optimized-out variable.
	* tracepoint.c (collect_symbol): Handle struct-valued vars as
	expressions, skip optimized-out variables with computed locations.
	* dwarf2loc.c (dwarf2_tracepoint_var_ref): Flag instead of
	erroring out if location expression missing.
	(loclist_tracepoint_var_ref): Don't error out here.
2010-03-17 22:04:43 +00:00
Tom Tromey
a3b2a86bb7 * dwarf2read.c (dwarf2_get_section_info): Handle case where no
DWARF data is available.
2010-03-17 19:16:02 +00:00
Daniel Jacobowitz
38963c97b7 * symfile.c (generic_load): Reset breakpoints after loading. 2010-03-17 18:08:11 +00:00
Tom Tromey
ddabfc735b * linux-nat.c (linux_nat_detach): Check debug_linux_nat. 2010-03-17 16:17:00 +00:00
Jan Kratochvil
d8c09fb595 gdb/
* spu-tdep.c (spu_catch_start): Replace set_breakpoint call with the
	create_breakpoint call, adjust the parameters.
2010-03-17 13:38:56 +00:00
gdbadmin
7a6771ef40 *** empty log message *** 2010-03-17 00:00:33 +00:00
Jan Kratochvil
bbb0eef699 gdb/
* dwarf2read.c (read_subrange_type): Set TYPE_HIGH_BOUND_UNDEFINED.
	* valarith.c (value_subscripted_rvalue): Suppress error if
	TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED.
2010-03-16 20:51:23 +00:00
Joel Brobecker
b8d088acc8 Avoid switch to invalid ptid during Ada task switch.
This is to prevent an internal error during an Ada task switch. A task
switch is simply a thread switch under the hood. What we do is collect
the info from the Ada Task Control Block, deduce the associated thread
ptid, and then switch to that thread.  If the thread ptid computation
routine has not been implemented for the target, of if there is a bug,
then we end up computing a bogus ptid which GDB does not know about,
which eventually leads to an assertion failure:

    (gdb) task 1
    [New Thread 5715]
    /[...]/gdb/thread.c:595: internal-error: is_thread_state:
     Assertion `tp' failed.
    A problem internal to GDB has been detected,
    further debugging may prove unreliable.
    Quit this debugging session? (y or n)

When this happens, it's just nicer for the user to print an error
message, and cancel the task switch. After this patch is applied,
this is what we get:

    (gdb) task 1
    [New Thread 10250]
    Unable to compute thread ID for task 1.
    Cannot switch to this task.

gdb/ChangeLog:

        * ada-tasks.c (task_command_1): Check that the task ptid is valid
        before doing the associated thread switch.
2010-03-16 18:47:15 +00:00
Pedro Alves
e92d13d5bc gdb/gdbserver/
* server.h (internal_error): Declare.
	(gdb_assert, ASSERT_FUNCTION, gdb_assert_fail): Define.
	* utils.c (internal_error): New function.
2010-03-16 17:47:52 +00:00
Hui Zhu
46956e396d 2010-03-16 Holger Hans Peter Freyther <zecke@selfish.org>
* linux-record.c (record_linux_msghdr): Remove unintended semicolons.
2010-03-16 17:01:21 +00:00
Daniel Jacobowitz
322be96262 * MAINTAINERS: Update my email address. 2010-03-16 13:59:36 +00:00
Vladimir Prus
8cdf0e1506 Simplify MI breakpoint setting.
* breakpoint.c (break_command_really): Make nonstatic and
    	rename to...
    	(create_breakpoint): ...this. Rename prior function by this name
    	to...
    	(create_breakpoint_sal): ...this.
    	(create_breakpoints): Rename to...
    	(create_breakpoints_sal): ...this.
    	(set_breakpoint): Remove.
    	* breakpoint.h: Adjust to above changes.
    	* mi/mi-cmd-break.c (mi_cmd_break_insert): Simplify.
2010-03-16 08:42:20 +00:00
Stan Shebs
ac0cd78b43 Fix a commit snafu 2010-03-16 00:52:54 +00:00
gdbadmin
6ad52ba97a *** empty log message *** 2010-03-16 00:00:03 +00:00
Stan Shebs
b6e7192fae 2010-03-15 Stan Shebs <stan@codesourcery.com>
* ax-gdb.c: Include cp-support.h.
	(find_field): Remove.
	(gen_primitive_field): New function.
	(gen_struct_ref_recursive): New function.
	(gen_struct_ref): Rewrite to call gen_struct_ref_recursive instead
	of find_field.
	(gen_static_field): New function.
	(gen_struct_elt_for_reference): New.
	(gen_namespace_elt): New.
	(gen_maybe_namespace_elt): New.
	(gen_aggregate_elt_ref): New.
	(gen_expr): Add OP_SCOPE, display opcode name in error message.
2010-03-15 23:53:21 +00:00
Tom Tromey
1054b214e2 * dwarf2read.c (die_needs_namespace): Also return 0 for
DW_TAG_subprogram.
2010-03-15 20:49:53 +00:00
Joel Brobecker
4dea3bb71a Requalify Ralf Corsepius' change as a "tiny change".
Ralf's copyright assignment does not cover GDB for the moment.
He only contributed one other change, in 2005, so this should be fine.
2010-03-15 17:32:55 +00:00
Sami Wagiaalla
13387711b2 2010-03-15 Sami Wagiaalla <swagiaal@redhat.com>
PR c++/7936:
        * cp-support.h: Added char *declaration element to using_direct
        data struct.
        (cp_add_using): Added char *declaration argument.
        (cp_add_using_directive): Ditto.
        (cp_lookup_symbol_imports): made extern.
        * cp-namespace.c: Updated with the above changes.
        * dwarf2read.c (read_import_statement): Ditto.
        (read_namespace): Ditto.
        (read_import_statement): Support import declarations.
        * cp-namespace.c (cp_lookup_symbol_imports): Check for imported
        declarations.
        Added support for 'declaration_only' search.
        (cp_lookup_symbol_namespace): Attempt to search for the name as
        is before consideration of imports.
        * symtab.c (lookup_symbol_aux_local): Added a 'declaration_only'
        search at every block level search.
        Now takes language argument.
        (lookup_symbol_aux): Updated.

    2010-03-15  Sami Wagiaalla  <swagiaal@redhat.com>

        * gdb.cp/shadow.exp: Removed kfail; test has been fix.
        * gdb.cp/nsusing.exp: Ditto.
2010-03-15 17:29:36 +00:00
Tom Tromey
6e31430b70 gdb
* c-exp.y (name_not_typename): Add 'operator' clause.
gdb/testsuite
	* gdb.cp/userdef.exp: Add tests for explicit calls to operator==.
	* gdb.cp/userdef.cc (operator==): New function.
	(main): New locals mem1, mem2.
2010-03-15 17:26:47 +00:00
Joel Brobecker
0f4b045ab1 Fix date in latest entry. 2010-03-15 17:06:41 +00:00
Joel Brobecker
bf3071347e Fail gdb configure if target is not supported.
* configure.ac: Exit if ${gdb_target_obs}" is not set.
        * configure: Regenerate.
2010-03-15 17:03:03 +00:00
Andreas Schwab
64daa791ab * configure.srv: Fix typo setting srv_regobj. 2010-03-15 16:35:29 +00:00
Jan Kratochvil
4d9743afc8 gdb/
* symfile.c (addr_info_make_relative): Ignore also missing ".dynbss"
	and ".sdynbss".  Update the comment.
2010-03-15 09:31:34 +00:00
Jie Zhang
f75150fead * MAINTAINERS: Update my email address. 2010-03-15 03:48:46 +00:00
Jie Zhang
e2d69cb505 * lib/mi-support.exp (mi_gdb_target_load): Delete unused timeout var.
Declare and use new loadtimeout variable.
2010-03-15 03:43:13 +00:00
Daniel Jacobowitz
f572f0a930 * gdb.base/printcmds.exp: Use gdb_file_cmd instead of gdb_load.
Use gdb_load later.
2010-03-15 02:57:57 +00:00
Daniel Jacobowitz
3c13bc11c3 * gdbtypes.h (TYPE_IS_OPAQUE): Correct HAVE_CPLUS_STRUCT check. 2010-03-15 02:42:54 +00:00
Pedro Alves
f52cd8cdd8 * linux-low.c (fetch_register): Avoid passing a non string literal
format to `error'.
	(usr_store_inferior_registers): Ditto.
2010-03-15 00:31:16 +00:00
gdbadmin
19941bfa37 *** empty log message *** 2010-03-15 00:00:03 +00:00
Daniel Jacobowitz
43484f03bc * charset.c [USE_WIN32API]: Include <windows.h>.
(_initialize_charset): Correct type of w32_host_default_charset.
2010-03-14 22:38:38 +00:00
Pedro Alves
93ae6fdc31 * linux-low.c (linux_write_memory): Bail out early if peeking
memory failed.
2010-03-14 19:34:47 +00:00
Pedro Alves
c3adc08c6f * linux-low.h (struct lwp_info): New fields
`stopped_by_watchpoint' and `stopped_data_address'.
	* linux-low.c (linux_wait_for_lwp): Check for watchpoint triggers
	here, and cache them in the lwp object.
	(wait_for_sigstop): Check stopped_by_watchpoint lwp field
	directly.
	(linux_resume_one_lwp): Clear the lwp's stopped_by_watchpoint
	field.
	(linux_stopped_by_watchpoint): Rewrite.
	(linux_stopped_data_address): Rewrite.
2010-03-14 18:46:40 +00:00
Pedro Alves
51f4c0b08e * gdb.base/solib-disc.c (main): Make format of fprintf a string
literal.  Add missing endlines to prints to stderr.
2010-03-14 17:46:51 +00:00
Pedro Alves
5f25d77d67 * infrun.c (ptid_match): Don't assert that PTID is not a pid ptid. 2010-03-14 17:35:21 +00:00
gdbadmin
005c61b77b *** empty log message *** 2010-03-14 00:00:03 +00:00
Tom Tromey
1c809c6883 gdb
PR c++/9708:
	* dwarf2read.c (die_needs_namespace) <DW_TAG_variable>: A variable
	in a lexical block does not need a namespace.
	(new_symbol) <DW_TAG_variable>: Put extern variables on
	list_in_scope in all cases.
gdb/testsuite
	PR c++/9708:
	* gdb.cp/m-static.exp: Add regression test.
	* gdb.cp/m-static.cc (method): New method.
	(main): Call it.
2010-03-13 00:27:12 +00:00
gdbadmin
e0ce539c57 *** empty log message *** 2010-03-13 00:00:33 +00:00