Commit graph

32890 commits

Author SHA1 Message Date
Pedro Alves
74da6f00a3 Move pagination_enabled declaration to a proper place.
Declare it close to other related declarations in utils.h, and remove
local extern declaration hack.

gdb/
2013-06-28  Pedro Alves  <palves@redhat.com>

	* infrun.c (set_observer_mode): Don't declare pagination_enabled
	here.
	* utils.h (pagination_enabled): Declare.
2013-06-28 17:19:39 +00:00
Pedro Alves
d32dc48ed4 infrun.c: Move non_stop_1 etc., higher up in file.
The "non_stop_1" global is out of place, mixed with the observer bits.
This moves all the non-stop user-interface-related bits together.

gdb/
2013-06-28  Pedro Alves  <palves@redhat.com>

	* infrun.c (non_stop, non_stop_1, set_non_stop, show_non_stop):
	Move higher up in file.
2013-06-28 17:06:14 +00:00
Tom Tromey
0edd9e3b86 * tracepoint.c (deprecated_readline_begin_hook)
(deprecated_readline_hook, deprecated_readline_end_hook): Don't
	declare.
2013-06-28 14:23:11 +00:00
Pedro Alves
4eb5910882 [PR tui/14880] Fetch values before comparing their contents.
PR tui/14880 shows a reproducer that triggers this assertion:

  int
  value_available_contents_eq (const struct value *val1, int offset1,
  			     const struct value *val2, int offset2,
  			     int length)
  {
    int idx1 = 0, idx2 = 0;

    /* This routine is used by printing routines, where we should
       already have read the value.  Note that we only know whether a
       value chunk is available if we've tried to read it.  */
    gdb_assert (!val1->lazy && !val2->lazy);

(top-gdb) bt
#0  internal_error (file=0x88a26c "../../src/gdb/value.c", line=549, string=0x88a220 "%s: Assertion `%s' failed.") at ../../src/gdb/utils.c:844
#1  0x000000000057b9cd in value_available_contents_eq (val1=0x10fa900, offset1=0, val2=0x10f9e10, offset2=0, length=8) at ../../src/gdb/value.c:549
#2  0x00000000004fd756 in tui_get_register (frame=0xd5c430, data=0x109a548, regnum=0, changedp=0x109a560) at ../../src/gdb/tui/tui-regs.c:736
#3  0x00000000004fd111 in tui_check_register_values (frame=0xd5c430) at ../../src/gdb/tui/tui-regs.c:521
#4  0x0000000000501884 in tui_check_data_values (frame=0xd5c430) at ../../src/gdb/tui/tui-windata.c:234
#5  0x00000000004f976f in tui_selected_frame_level_changed_hook (level=1) at ../../src/gdb/tui/tui-hooks.c:222
#6  0x00000000006f0681 in select_frame (fi=0xd5c430) at ../../src/gdb/frame.c:1490
#7  0x00000000005dd94b in up_silently_base (count_exp=0x0) at ../../src/gdb/stack.c:2268
#8  0x00000000005dd985 in up_command (count_exp=0x0, from_tty=1) at ../../src/gdb/stack.c:2280
#9  0x00000000004dc5cf in do_cfunc (c=0xd3f720, args=0x0, from_tty=1) at ../../src/gdb/cli/cli-decode.c:113
#10 0x00000000004df664 in cmd_func (cmd=0xd3f720, args=0x0, from_tty=1) at ../../src/gdb/cli/cli-decode.c:1888
#11 0x00000000006e43e1 in execute_command (p=0xc7e6c2 "", from_tty=1) at ../../src/gdb/top.c:489

The fix is to fetch the value before comparing the contents.  The
comment additions to value.h explain why it can't be
value_available_contents_eq itself that fetches the contents.

Tested on x86_64 Fedora 17.

gdb/
2013-06-28  Pedro Alves  <palves@redhat.com>

	PR tui/14880
	* tui/tui-regs.c (tui_get_register): Fetch register value contents
	before checking whether they're available.
	* value.c (value_available_contents_eq): Change comment.
	* value.h (value_available_contents_eq): Expand comment.
2013-06-28 12:36:48 +00:00
Mircea Gherzan
257b6bec77 gdbserver: fix the standalone build
When directly invoking gdb/gdbserver/configure && make, the build will
fail because the $(host_alias) is empty and thus create-version.sh does
not get enough parameters.

The output of gdbserver --version without this patch (built like above):

  [...]
  This gdbserver was configured as ""

After applying this patch:

  [...]
  This gdbserver was configured as "x86_64-unknown-linux-gnu"

2013-06-28  Mircea Gherzan  <mircea.gherzan@intel.com>

gdbserver:

	* configure.ac (version_host, version_target): Set and AC_SUBST
	them.
	* configure: Rebuild.
	* Makefile.in (version_host, version_target): Get from
	configure.
	(version.c): Use $(version_host) and $(version_target).

Change-Id: Id48240532ad3d624ec78867a6db5ebd4c09583ff
Signed-off-by: Mircea Gherzan <mircea.gherzan@intel.com>
2013-06-28 12:29:15 +00:00
Tom Tromey
97b1715633 * target.c (find_run_target): Remove.
* target.h (find_run_target): Remove.
2013-06-27 19:52:41 +00:00
Tom Tromey
6a3bfc5cda * corelow.c (core_gdbarch): Now static. 2013-06-27 19:38:55 +00:00
Tom Tromey
c9ef825d2e * target.c (target_struct_index): Remove. 2013-06-27 19:38:24 +00:00
Pedro Alves
e5823f1cb5 Move comment on the 'stepping over resolver' mechanism to the internals manual.
This whole comment is now a bit out of place.  I looked into moving it
to handle_inferior_event, close to where in_solib_dynsym_resolve_code
is used, but then there are 3 such places.  I then looked at
fragmenting it, pushing bits closer to the definitions of
in_solib_dynsym_resolve_code and gdbarch_skip_solib_resolver, but then
we'd lose the main advantage which is the overview.  In the end, I
realized this can fit nicely as internals manual material.

This could possibly be a subsection of a new "run control", or "source
stepping" or "stepping" or some such a bit more general section, but
we can do that when we have more related content...  Even the "single
stepping" section is presently empty...

gdb/doc/
2013-06-27  Pedro Alves  <palves@redhat.com>

	* gdbint.texinfo (Algorithms) <Stepping over runtime loader
	dynamic symbol resolution code>: New section, based on infrun.c
	comment.

gdb/
2013-06-27  Pedro Alves  <palves@redhat.com>

	* infrun.c: Remove comment describing the 'stepping over runtime
	loader dynamic symbol resolution code' mechanism; moved to
	gdbint.texinfo.
2013-06-27 19:17:27 +00:00
Tom Tromey
a8c97a8765 Fix up broken ChangeLog entries.
In some previous commits I forgot to prefix the file names with
"gdb.base".  This fixes the ChangeLog entries to be correct.
2013-06-27 19:04:28 +00:00
Tom Tromey
62cef5152a test suite update - gdb.base/[t-z]
Convert files gdb.base/[t-z]*.exp to use standard_output_file et al.

	* gdb.base/testenv.exp, gdb.base/tui-layout.exp,
	gdb.base/twice.exp, gdb.base/type-opaque.exp, gdb.base/unload.exp,
	gdb.base/unwindonsignal.exp, gdb.base/valgrind-db-attach.exp,
	gdb.base/valgrind-infcall.exp, gdb.base/value-double-free.exp,
	gdb.base/varargs.exp, gdb.base/watch-cond-infcall.exp,
	gdb.base/watch-cond.exp, gdb.base/watch-non-mem.exp,
	gdb.base/watch-read.exp, gdb.base/watch-vfork.exp,
	gdb.base/watch_thread_num.exp, gdb.base/watchpoint-cond-gone.exp,
	gdb.base/watchpoint-delete.exp, gdb.base/watchpoint-hw.exp,
	gdb.base/watchpoint-solib.exp, gdb.base/watchpoint.exp,
	gdb.base/watchpoints.exp, gdb.base/wchar.exp, gdb.base/whatis.exp:
	Use standard_testfile, standard_output_file, prepare_for_testing,
	clean_restart.
2013-06-27 19:00:47 +00:00
Tom Tromey
0ab77f5fa2 test suite update - gdb.base/s*
Convert files gdb.base/s*.exp to use standard_output_file et al.

	* gdb.base/save-bp.exp, gdb.base/savedregs.exp,
	gdb.base/scope.exp, gdb.base/sep.exp, gdb.base/sepsymtab.exp,
	gdb.base/set-lang-auto.exp, gdb.base/setshow.exp,
	gdb.base/setvar.exp, gdb.base/shlib-call.exp,
	gdb.base/shreloc.exp, gdb.base/sigall.exp,
	gdb.base/sigaltstack.exp, gdb.base/sigbpt.exp,
	gdb.base/sigchld.exp, gdb.base/siginfo-addr.exp,
	gdb.base/siginfo-infcall.exp, gdb.base/siginfo-obj.exp,
	gdb.base/siginfo.exp, gdb.base/signals.exp, gdb.base/signest.exp,
	gdb.base/signull.exp, gdb.base/sigrepeat.exp,
	gdb.base/sigstep.exp, gdb.base/sizeof.exp,
	gdb.base/skip-solib.exp, gdb.base/so-impl-ld.exp,
	gdb.base/solib-display.exp, gdb.base/solib-nodir.exp,
	gdb.base/solib-overlap.exp, gdb.base/solib-symbol.exp,
	gdb.base/solib-weak.exp, gdb.base/source.exp,
	gdb.base/stack-checking.exp, gdb.base/stale-infcall.exp,
	gdb.base/stap-probe.exp, gdb.base/start.exp,
	gdb.base/step-break.exp, gdb.base/step-bt.exp,
	gdb.base/step-line.exp, gdb.base/step-resume-infcall.exp,
	gdb.base/step-test.exp, gdb.base/structs.exp,
	gdb.base/structs2.exp, gdb.base/structs3.exp,
	gdb.base/symbol-without-target_section.exp: Use standard_testfile,
	standard_output_file, prepare_for_testing, clean_restart.
2013-06-27 18:58:28 +00:00
Tom Tromey
822bd149bf test suite update - gdb.base/[n-r]
Convert files gdb.base/[n-r]*.exp to use standard_output_file et al.

	* gdb.base/nextoverexit.exp, gdb.base/nextoverexit.exp,
	gdb.base/nodebug.exp, gdb.base/nofield.exp, gdb.base/nostdlib.exp,
	gdb.base/opaque.exp, gdb.base/overlays.exp, gdb.base/pc-fp.exp,
	gdb.base/pending.exp, gdb.base/permissions.exp,
	gdb.base/pie-execl.exp, gdb.base/pointers.exp,
	gdb.base/pr11022.exp, gdb.base/print-file-var.exp,
	gdb.base/printcmds.exp, gdb.base/prologue.exp,
	gdb.base/psymtab.exp, gdb.base/ptr-typedef.exp,
	gdb.base/ptype.exp, gdb.base/randomize.exp,
	gdb.base/readline-ask.exp, gdb.base/recpar.exp,
	gdb.base/recurse.exp, gdb.base/relativedebug.exp,
	gdb.base/relocate.exp, gdb.base/remote.exp, gdb.base/reread.exp,
	gdb.base/return-nodebug.exp, gdb.base/return2.exp: Use
	standard_testfile, standard_output_file, prepare_for_testing,
	clean_restart.
2013-06-27 18:53:49 +00:00
Tom Tromey
f8b41b0022 test suite update - gdb.base/[h-m]
Convert files gdb.base/[h-m]*.exp to use standard_output_file et al.

	* hook-stop-continue.exp, hook-stop-frame.exp, huge.exp,
	included.exp, inferior-died.exp, infnan.exp, info-fun.exp,
	info-macros.exp, info-os.exp, info-proc.exp, info-target.exp,
	infoline.exp, interp.exp, interrupt.exp, jit-simple.exp,
	jit-so.exp, jump.exp, kill-after-signal.exp, label.exp, langs.exp,
	lineinc.exp, list.exp, logical.exp, long_long.exp, longjmp.exp,
	macscp.exp, maint.exp, memattr.exp, mips_pro.exp, miscexprs.exp,
	morestack.exp, moribund-step.exp, multi-forks.exp: Use
	standard_testfile, standard_output_file, prepare_for_testing,
	clean_restart.
2013-06-27 18:51:31 +00:00
Tom Tromey
289f9037cb test suite update - gdb.base/[efg]
Convert files gdb.base/[efg]*.exp to use standard_output_file et al.

	* ena-dis-br.exp, enum_cond.exp, enumval.exp, environ.exp,
	eu-strip-infcall.exp, eval-skip.exp, exe-lock.exp,
	expand-psymtabs.exp, exprs.exp, fileio.exp, find.exp,
	fixsection.exp, foll-exec.exp, foll-fork.exp,
	fortran-sym-case.exp, frame-args.exp, freebpcmd.exp, fullname.exp,
	funcargs.exp, gcore-buffer-overflow.exp, gcore.exp, gdb1090.exp,
	gdb11530.exp, gdb11531.exp, gdb1250.exp, gdb1555.exp, gdb1821.exp,
	gdbindex-stabs.exp, gdbvars.exp, gnu-ifunc.exp, gnu_vector.exp:
	Use standard_testfile, standard_output_file, prepare_for_testing,
	clean_restart.
2013-06-27 18:50:30 +00:00
Tom Tromey
f76495c88c test suite update - gdb.base/[cd]
Convert files gdb.base/[cd]*.exp to use standard_output_file et al.

	* call-ar-st.exp, call-rt-st.exp, call-sc.exp,
	call-signal-resume.exp, call-strs.exp, callexit.exp,
	callfuncs.exp, catch-load.exp, catch-syscall.exp, charset.exp,
	checkpoint.exp, chng-syms.exp, code-expr.exp, code_elim.exp,
	commands.exp, completion.exp, complex.exp, cond-expr.exp,
	condbreak.exp, consecutive.exp, constvars.exp, corefile.exp,
	ctxobj.exp, cursal.exp, cvexpr.exp, dbx.exp, default.exp,
	define.exp, del.exp, detach.exp, dfp-test.exp, display.exp,
	dmsym.exp, dump.exp, dup-sect.exp: Use standard_testfile,
	standard_output_file, prepare_for_testing, clean_restart.
2013-06-27 18:49:03 +00:00
Tom Tromey
a64d25307d test suite update - gdb.base/[ab]
Convert files gdb.base/[ab]*.exp to use standard_output_file et al.

	* a2-run.exp, all-bin.exp, annota1.exp, annota3.exp, anon.exp,
	args.exp, arithmet.exp, arrayidx.exp, assign.exp, async-shell.exp,
	async.exp, attach-pie-misread.exp, attach-pie-noexec.exp,
	attach-twice.exp, attach.exp, auxv.exp, bang.exp, bfp-test.exp,
	bigcore.exp, bitfields.exp, bitfields2.exp, break-entry.exp,
	break-interp.exp, break-on-linker-gcd-function.exp,
	breakpoint-shadow.exp: Use standard_testfile,
	standard_output_file, prepare_for_testing, clean_restart.
2013-06-27 18:47:53 +00:00
Pedro Alves
97f8dd0980 Fix catch_command_errors's prototype.
gdb/
2013-06-27  Pedro Alves  <palves@redhat.com>

	* exceptions.c (catch_command_errors): Remove spurious space.
	* exceptions.h (catch_command_errors): Second parameter is "arg",
	not "command".
2013-06-27 17:53:40 +00:00
Yao Qi
02b1871e58 gdb/
* common/create-version.sh: Update comments.  Handle the case
	that TARGET_ALIAS is empty.
2013-06-27 00:12:13 +00:00
Pedro Alves
bb1b1cf1c7 Garbage collect SOLIB_IN_DYNAMIC_LINKER.
This hasn't been used for years.

gdb/
2013-06-26  Pedro Alves  <palves@redhat.com>

	* infrun.c (SOLIB_IN_DYNAMIC_LINKER): Delete macro and describing
	comment.
2013-06-26 21:38:23 +00:00
Pedro Alves
7b624e7136 Update comments on stepping over resolver code.
This updates the comments on the step-over-resolver mechanism a bit,
adjusting it to refer to the gdbarch hooks instead of the old macros;
to mention the in_dynsym_resolve_code hook of the target_so_ops
vector; and to American English spelling (signalling->signaling).

gdb/
2013-06-26  Pedro Alves  <palves@redhat.com>

	* infrun.c: Update comments on stepping over runtime loader
	dynamic symbol resolution code.
2013-06-26 21:37:53 +00:00
Sergio Durigan Junior
74e5a34656 I found this issue when I was debugging something else on IA-64. Both
ax-gdb.h and parser-defs.h could be made more self-contained by forward
declaring types or including the necessary header files.  This commit does
this.

2013-06-26  Sergio Durigan Junior  <sergiodj@redhat.com>

	* ax-gdb.h (union exp_element): Forward declare.
	* parser-defs.h: Include expression.h.
2013-06-26 17:22:52 +00:00
Tom Tromey
92dcb9ffb9 * gdbint.texinfo (Versions and Branches): Use common/version.in.
Update.
2013-06-26 16:04:05 +00:00
Maciej W. Rozycki
a2fb2cee96 * mips-tdep.c (fetch_mips_16): Use unmake_compact_addr. 2013-06-26 15:37:49 +00:00
Dmitry Kozlov
86ebe1497f Fix trace status to output username without trailing colon. 2013-06-26 15:24:10 +00:00
Dmitry Kozlov
cdba14e0bf Extend tsave to save starttime, stoptime. 2013-06-26 15:17:59 +00:00
Dmitry Kozlov
f30aa5affe Fix trace-status to output proper start-time and stop-time. 2013-06-26 15:14:39 +00:00
Maciej W. Rozycki
1aee363c16 * mips-tdep.c (mips_next_pc): Fix a typo. 2013-06-26 15:10:33 +00:00
Maciej W. Rozycki
3356937a9d * mips-tdep.c (micromips_scan_prologue): Fix a typo. 2013-06-26 15:00:10 +00:00
Yao Qi
aaff8d734a gdb/testsuite/
2013-06-26  Yao Qi  <yao@codesourcery.com>

	* gdb.trace/mi-trace-frame-collected.exp: New.
2013-06-26 08:28:27 +00:00
Yao Qi
dc673c81ae gdb/
2013-06-26  Pedro Alves  <pedro@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (GDB/MI Tracepoint Commands): Document
	-trace-frame-collected.
gdb:

2013-06-26  Pedro Alves  <pedro@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* mi/mi-cmds.c (mi_cmds): Register -trace-frame-collected.
	* mi/mi-cmds.h (mi_cmd_trace_frame_collected): Declare.
	* mi/mi-main.c (print_variable_or_computed): New function.
	(mi_cmd_trace_frame_collected): New function.
	* tracepoint.c (find_trace_state_variable_by_number): New.
	(struct traceframe_info): Move to tracepoint.h
	(struct collection_list): Likewise.
	(do_collect_symbol): Include locals and arguments in the wholly
	collected variables list.
	(clear_collection_list): Clear wholly collected variables list
	and computed variables list.
	(append_exp): New function.
	(encode_actions_1): Include variables in the wholly
	collected variables list.  Include memory ranges and
	full-fledged expressions in the computed expressions list.
	(encode_actions): Move some code to ...
	Return the cleanup chain.
	(encode_actions_rsp): ... here.  New function.
	(get_traceframe_location, get_traceframe_info): Remove static.
	* tracepoint.h (struct memrange): Moved	from tracepoint.c.
	(struct collection_list): Moved from tracepoint.c.  Add two
	new fields 'wholly_collected' and 'computed'.
	(find_trace_state_variable_by_number): Declare.
	(encode_actions): Adjust declaration.
	(encode_actions_rsp): Declare.
	(get_traceframe_info, get_traceframe_location): Declare.

	* NEWS: Mention new MI command -trace-frame-collected.
2013-06-26 08:17:27 +00:00
Yao Qi
28a9351183 gdb/
2013-06-26  Pedro Alves  <pedro@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* ctf.c (ctf_traceframe_info): Push trace state variables
	present in the trace data into the traceframe info object.
	* breakpoint.c (DEF_VEC_I): Remove.
	* common/filestuff.c (DEF_VEC_I): Likewise.
	* dwarf2loc.c (DEF_VEC_I): Likewise.
	* mi/mi-main.c (DEF_VEC_I): Likewise.
	* common/gdb_vecs.h (DEF_VEC_I): Define vector for int.
	* features/traceframe-info.dtd: Add tvar element and its
	attributes.
	* tracepoint.c (free_traceframe_info): Free vector 'tvars'.
	(build_traceframe_info): Push trace state variables present in the
	trace data into the traceframe info object.
	(traceframe_info_start_tvar): New function.
	(tvar_attributes): New.
	(traceframe_info_children): Add "tvar" element.
	* tracepoint.h (struct traceframe_info) <tvars>: New field.

	* NEWS: Mention the change in GDB and GDBserver.

gdb/doc:

2013-06-26  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Traceframe Info Format): Document tvar element and
	its attributes.

gdb/gdbserver:

2013-06-26  Pedro Alves  <pedro@codesourcery.com>

	* tracepoint.c (build_traceframe_info_xml): Output trace state
	variables present in the trace buffer.
2013-06-26 08:01:57 +00:00
Yao Qi
ddacd3c8e9 gdb/
2013-06-26  Pedro Alves  <pedro@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* tracepoint.c (trace_dump_command): Move code to ...
	(get_traceframe_location): ... here.  New.
2013-06-26 05:35:45 +00:00
Yao Qi
05796b355f gdb/
2013-06-26  Pedro Alves  <pedro@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* tracepoint.c (trace_dump_command): GDB emits an error
	 instead of a warning when a traceframe is not selected.
2013-06-26 05:28:01 +00:00
Yao Qi
cbfa3b6104 gdb/
2013-06-26  Pedro Alves  <pedro@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* tracepoint.c (tracepoint_list, stepping_list): Remove.
	(clear_collection_list): Free fields 'aexpre_list' and 'list'
	in collection_list.
	(do_clear_collection_list, init_collection_list): New.
	(encode_actions): Add local variables 'tracepoint_list' and
	'stepping_list'.  Call init_collection_list and make cleanup
	which calls do_clear_collection_list.  Don't call
	clear_collection_list.
	(_initialize_tracepoint): Delete references to
	'tracepoint_list' and 'stepping_list'.
2013-06-26 05:25:28 +00:00
Tom Tromey
6e2048d3e3 * common/create-version.sh (date): Use "$", not "$$" in sed
expression.
2013-06-25 16:04:54 +00:00
Kevin Buettner
42059f0ed0 * NEWS (New targets): Add entry for TI MSP430. 2013-06-25 15:55:12 +00:00
Yao Qi
a0743c90c7 Upload tsv earlier in remote_start_remote
In extended-remote, when GDB connects the target, but target is not
running, the TSVs are not uploaded.  When GDB attaches to a process,
the TSVs are not uploaded either.  However, GDBserver has some
builtin or predefined TSV to upload, such as $trace_timestamp.  This
bug causes $trace_timestamp is never uploaded.

gdb/

2013-06-25  Yao Qi  <yao@codesourcery.com>

        * remote.c (remote_start_remote): Move code to upload tsv
        earlier.

gdb/testsuite/

2013-06-25  Yao Qi  <yao@codesourcery.com>

	* boards/native-extended-gdbserver.exp: Set board_info
	'gdb,predefined_tsv'.
	* boards/native-gdbserver.exp: Likewise.
	* boards/native-stdio-gdbserver.exp: Likewise.
	* gdb.server/ext-attach.exp: Load trace-support.exp.  Check
	uploaded TSVs if target supports tracing.
	* gdb.trace/tsv.exp: Check uploaded TSVs if target supports
	tracing and target has predefined tsv.

gdb/doc/

2013-06-25  Yao Qi  <yao@codesourcery.com>

	* gdbint.texinfo (Testsuite): Document 'gdb,predefined_tsv'.
2013-06-25 13:01:28 +00:00
Hui Zhu
9d6e6e84f7 2013-06-25 Yao Qi <yao@codesourcery.com>
Hui Zhu  <hui@codesourcery.com>
	    Pedro Alves  <palves@redhat.com>

	PR breakpoints/15075
	PR breakpoints/15434
	* breakpoint.c (bpstat_stop_status): Call
	b->ops->after_condition_true.
	(update_dprintf_command_list): Don't append "continue" command
	to the command list of dprintf breakpoint.
	(base_breakpoint_after_condition_true): New function.
	(base_breakpoint_ops): Add base_breakpoint_after_condition_true.
	(dprintf_after_condition_true): New function.
	(initialize_breakpoint_ops): Set dprintf_after_condition_true.
	* breakpoint.h (breakpoint_ops): Add after_condition_true.

2013-06-25  Yao Qi  <yao@codesourcery.com>
	    Hui Zhu  <hui@codesourcery.com>
	    Pedro Alves  <palves@redhat.com>

	PR breakpoints/15075
	PR breakpoints/15434
	* gdb.base/dprintf-next.c: New file.
	* gdb.base/dprintf-next.exp: New file.
	* gdb.base/dprintf-non-stop.c: New file.
	* gdb.base/dprintf-non-stop.exp: New file.
	* gdb.base/dprintf.exp: Don't check "continue" in the output
	of "info breakpoints".
	* gdb.mi/mi-breakpoint-changed.exp (test_insert_delete_modify):
	Don't check "continue" in script field.
2013-06-25 11:37:48 +00:00
Kevin Buettner
586cf74920 * Makefile.in (ALL_TARGET_OBS): Add msp430-tdep.o.
(ALLDEPFILES): Add msp430-tdep.c.
	* configure.tgt (msp430*-*-elf): New target.
	* msp430-tdep.c: New file.
2013-06-25 01:16:31 +00:00
Maciej W. Rozycki
1bbce13264 bfd/
* elfxx-mips.h (_bfd_mips_elf_get_synthetic_symtab): New
	prototype.
	* elf32-mips.c (elf_backend_plt_sym_val): Remove macro.
	(bfd_elf32_get_synthetic_symtab): New macro.
	* elfxx-mips.c (plt_entry): New structure.
	(mips_elf_link_hash_entry): Add use_plt_entry member.
	(mips_elf_link_hash_table): Rename plt_entry_size member to
	plt_mips_entry_size.  Add plt_comp_entry_size, plt_mips_offset,
	plt_comp_offset, plt_got_index entries and plt_header_is_comp
	members.
	(STUB_LW_MICROMIPS, STUB_MOVE_MICROMIPS): New macros.
	(STUB_LUI_MICROMIPS, STUB_JALR_MICROMIPS): Likewise.
	(STUB_ORI_MICROMIPS, STUB_LI16U_MICROMIPS): Likewise.
	(STUB_LI16S_MICROMIPS): Likewise.
	(MICROMIPS_FUNCTION_STUB_NORMAL_SIZE): Likewise.
	(MICROMIPS_FUNCTION_STUB_BIG_SIZE): Likewise.
	(micromips_o32_exec_plt0_entry): New variable.
	(mips16_o32_exec_plt_entry): Likewise.
	(micromips_o32_exec_plt_entry): Likewise.
	(mips_elf_link_hash_newfunc): Initialize use_plt_entry.
	(mips_elf_output_extsym): Update to use gotplt_union's plist
	member rather than offset.
	(mips_elf_gotplt_index): Likewise.  Remove the VxWorks
	restriction.  Use MIPS_ELF_GOT_SIZE to calculate GOT address.
	(mips_elf_count_got_symbols): Update to use gotplt_union's plist
	member rather than offset.
	(mips_elf_calculate_relocation): Handle MIPS16/microMIPS PLT
	entries.
	(_bfd_mips_elf_create_dynamic_sections): Don't set PLT sizes
	here.
	(mips_elf_make_plt_record): New function.
	(_bfd_mips_elf_check_relocs): Update comment.  Record occurences
	of JAL relocations that might need a PLT entry.
	(_bfd_mips_elf_adjust_dynamic_symbol): Update to use
	gotplt_union's plist member rather than offset.  Set individual
	PLT entry sizes here.  Handle MIPS16/microMIPS PLT entries.
	Don't set the symbol's value in the symbol table for PLT
	references here.  Don't set the PLT or PLT GOT section sizes
	here.
	(mips_elf_estimate_stub_size): Handle microMIPS stubs.
	(mips_elf_allocate_lazy_stub): Likewise.
	(mips_elf_lay_out_lazy_stubs): Likewise.  Define a _MIPS_STUBS_
	magic symbol.
	(mips_elf_set_plt_sym_value): New function.
	(_bfd_mips_elf_size_dynamic_sections): Set PLT header size and
	PLT and PLT GOT section sizes here.  Set the symbol values in
	the symbol table for PLT references here.  Handle microMIPS
	annotation of the _PROCEDURE_LINKAGE_TABLE_ magic symbol.
	(_bfd_mips_elf_finish_dynamic_symbol): Update to use
	gotplt_union's plist member rather than offset.  Handle
	MIPS16/microMIPS PLT entries.  Handle microMIPS stubs.
	(_bfd_mips_vxworks_finish_dynamic_symbol): Update to use
	gotplt_union's plist member rather than offset.  Use
	MIPS_ELF_GOT_SIZE to calculate GOT address.
	(mips_finish_exec_plt): Handle microMIPS PLT.  Return status.
	(_bfd_mips_elf_finish_dynamic_sections): Handle result from
	mips_finish_exec_plt.
	(_bfd_mips_elf_link_hash_table_create): Update to use
	gotplt_union's plist member rather than offset.
	(_bfd_mips_elf_get_synthetic_symtab): New function.

	include/elf/
	* mips.h (ELF_ST_IS_MIPS_PLT): Respect STO_MIPS16 setting.
	(ELF_ST_SET_MIPS_PLT): Likewise.

	gdb/
	* mips-tdep.c (mips_elf_make_msymbol_special): Handle MIPS16 and
	microMIPS synthetic symbols.

	ld/
	* emulparams/elf32btsmip.sh: Arrange for .got.plt to be placed
	as close to .plt as possible.
	* scripttempl/elf.sc: Handle $INITIAL_READWRITE_SECTIONS and
	$PLT_NEXT_DATA variables.

	ld/testsuite/
	* ld-mips-elf/jalx-2.dd: Update for microMIPS PLT support.
	* ld-mips-elf/pic-and-nonpic-3a.dd: Update for the _MIPS_STUBS_
	magic symbol.
	* ld-mips-elf/pic-and-nonpic-3b.dd: Likewise.
	* ld-mips-elf/pic-and-nonpic-6-n32.dd: Likewise.
	* ld-mips-elf/pic-and-nonpic-6-n64.dd: Likewise.
	* ld-mips-elf/pic-and-nonpic-6-o32.dd: Likewise.
	* ld-mips-elf/stub-dynsym-1-10000.d: Likewise.
	* ld-mips-elf/stub-dynsym-1-2fe80.d: Likewise.
	* ld-mips-elf/stub-dynsym-1-7fff.d: Likewise.
	* ld-mips-elf/stub-dynsym-1-8000.d: Likewise.
	* ld-mips-elf/stub-dynsym-1-fff0.d: Likewise.
	* ld-mips-elf/tlslib-o32.d: Likewise.

	opcodes/
	* mips-dis.c (is_mips16_plt_tail): New function.
	(print_insn_mips16): Handle MIPS16 PLT entry's GOT slot address
	word.
	(is_compressed_mode_p): Handle MIPS16/microMIPS PLT entries.
2013-06-24 23:55:46 +00:00
Maciej W. Rozycki
3e5d3a5aaf * objfiles.h (pc_in_section): New prototype.
(in_plt_section): Remove name argument, replace prototype with
	static inline function.
	* mips-tdep.h: Include "objfiles.h".
	(in_mips_stubs_section): New function.
	* hppa-tdep.h (gdbarch_tdep): Remove name argument of
	in_solib_call_trampoline member.
	(hppa_in_solib_call_trampoline): Remove name argument.
	* objfiles.c (pc_in_section): New function.
	(in_plt_section): Remove function.
	* mips-linux-tdep.c: Include "objfiles.h".
	(mips_linux_in_dynsym_stub): Call in_mips_stubs_section.  Remove
	name argument.  Return 1 rather than the low 16-bit halfword of
	any instruction examined.
	(mips_linux_in_dynsym_resolve_code): Update
	mips_linux_in_dynsym_stub call accordingly.
	* mips-tdep.c (mips_stub_frame_sniffer): Use in_mips_stubs_section
	rather than an equivalent hand-coded sequence.
	* hppa-hpux-tdep.c (in_opd_section): Remove function.
	(hppa32_hpux_in_solib_call_trampoline): Remove name argument.
	(hppa64_hpux_in_solib_call_trampoline): Likewise.
	(hppa64_hpux_find_global_pointer): Use pc_in_section rather than
	in_opd_section.
	* hppa-tdep.c (hppa_stub_unwind_sniffer): Remove name argument
	on call to tdep->in_solib_call_trampoline.
	(hppa_in_solib_call_trampoline): Remove name argument, update
	according to in_plt_section change.
	(hppa_skip_trampoline_code): Update according to in_plt_section
	change.
	* aarch64-tdep.c (aarch64_stub_unwind_sniffer): Likewise.
	* arm-symbian-tdep.c (arm_symbian_skip_trampoline_code):
	Likewise.
	* arm-tdep.c (arm_stub_unwind_sniffer): Likewise.
	* hppa-linux-tdep.c (hppa_linux_find_global_pointer): Likewise.
	* hppabsd-tdep.c (hppabsd_find_global_pointer): Likewise.
	* nios2-tdep.c (nios2_stub_frame_sniffer): Likewise.
	* nto-tdep.c (nto_relocate_section_addresses): Likewise.
	* s390-tdep.c (s390_stub_frame_sniffer): Likewise.
	* sh-tdep.c (sh_stub_unwind_sniffer): Likewise.
	* solib-dsbt.c (dsbt_in_dynsym_resolve_code): Likewise.
	* solib-frv.c (frv_in_dynsym_resolve_code): Likewise.
	* solib-svr4.c (svr4_in_dynsym_resolve_code): Likewise.
	* solib-target.c (solib_target_in_dynsym_resolve_code): Likewise.
	* sparc-tdep.c (sparc_analyze_prologue): Likewise.
	* tic6x-tdep.c (tic6x_stub_unwind_sniffer): Likewise.
2013-06-24 22:18:32 +00:00
Joel Brobecker
b9b26a166a Fix host_name and target_name generation by common/create-version.sh.
This new script has one small snafoo, which prevented the $host_alias
and $target_alias from being expanded during the generation of the
version.c file.  As a result, the version info yields:

    This GDB was configured as "--host=$host_alias --target=$target_alias".
                                       ^^^^^^^^^^^          ^^^^^^^^^^^^^

This patch fixes this issue.

gdb/ChangeLog:

        * common/create-version.sh: Fix expansion of $host_alias
        and $target_alias in generation of HOST_NAME and TARGET_NAME
        (resp.).
2013-06-24 22:03:51 +00:00
Tom Tromey
0120846339 don't keep a gdb-specific date
Right now there are two nightly commits to update a file in the tree
with the current date.  One commit is for BFD, one is for gdb.

It seems unnecessary to me to do this twice.  We can make do with a
single such commit.

This patch changes gdb in a minimal way to reuse the BFD date -- it
extracts it from bfd/version.h and changes version.in to use the
placeholder string "DATE" for those times when a date is wanted.

I propose removing the cron job that updates the version on trunk, and
then check in this patch.

For release branches, we can keep the cron job, but just tell it to
rewrite bfd/version.h.  I believe this is a simple change in the
crontab -- the script will work just fine on this file.

This also moves version.in and version.h into common/, to reflect
their shared status; and updates gdbserver to use version.h besides.

	* common/create-version.sh: New file.
	* Makefile.in (version.c): Use bfd/version.h, common/version.in,
	create-version.sh.
	(HFILES_NO_SRCDIR): Use common/version.h.
	* version.in: Move to ...
	* common/version.in: ... here.  Replace date with "DATE".
	* version.h: Move to ...
	* common/version.h: ... here.
gdbserver:
	* Makefile.in (version.c): Use bfd/version.h, common/version.in,
	create-version.sh.
	(version.o): Remove.
	* gdbreplay.c: Include version.h.
	(version, host_name): Don't declare.
	* server.h: Include version.h.
	(version, host_name): Don't declare.
doc:
	* Makefile.in (POD2MAN1, POD2MAN5): Use version.subst.
	(GDBvn.texi): Use version.subst.
	(version.subst): New target.
	(mostlyclean): Remove version.subst.
2013-06-24 15:06:27 +00:00
gdbadmin
5ba23a3fa1 *** empty log message *** 2013-06-24 00:00:02 +00:00
gdbadmin
38d08085af *** empty log message *** 2013-06-23 00:00:02 +00:00
gdbadmin
a913933049 *** empty log message *** 2013-06-22 00:00:32 +00:00
Joel Brobecker
bb6b9a5e78 Update dates in relevant gdb/gnulib/ copyright headers
This patch is the result of re-running the copyright.py script
in GDB, after we modified it to stop ignoring some files in
gdb/gnulib that should have been updated earlier this year.

gdb/ChangeLog:

        * gdb/gnulib/Makefile.in: Update date in copyright header.
        * gdb/gnulib/configure.ac: Ditto.
        * gdb/gnulib/update-gnulib.sh: Ditto.
2013-06-21 17:55:07 +00:00
Joel Brobecker
c3b18ee7ba copyright.py: Handle files in gdb/gnulib owned by GDB.
The script was excluding all of gdb/gnulib but this is no longer
correct, ever since we moved the imported files to gdb/gnulib/import.
As a result, a number of files (Makefile, etc, including this script
itself) did not have their copyright header updated. This fixes
the problem.

gdb/ChangeLog:

        * copyright.py (EXCLUDE_LIST): Replace "gdb/gnulib" by
        "gdb/gnulib/import".
2013-06-21 17:54:58 +00:00
Tom Tromey
e7ab318507 * gdb.trace/actions.exp (check_tracepoint): Don't use a full file
name in a test name.
2013-06-21 17:18:45 +00:00
Will Newton
85d3b769fc gdb/doublest.c: Use frexpl rather than ldfrexp.
Most modern systems have frexpl and gnulib provides an implementation
for those that don't, so use it instead of the generic but inaccurate
ldfrexp.

gdb/ChangeLog:

2013-06-21  Will Newton  <will.newton@linaro.org>

	* doublest.c (ldfrexp): Remove function.
	(convert_doublest_to_floatformat): Call frexpl instead of
	ldfrexp.
2013-06-21 16:24:14 +00:00
Will Newton
88b4890352 gdb/gnulib: Import frexpl.
gdb/ChangeLog:

2013-06-21  Will Newton  <will.newton@linaro.org>

	* gnulib/update-gnulib.sh(IMPORTED_GNULIB_MODULES): Add frexpl.
	* gnulib/aclocal.m4: Regenerate.
	* gnulib/config.in: Regenerate.
	* gnulib/configure: Regenerate.
	* gnulib/import/Makefile.am: Update.
	* gnulib/import/Makefile.in: Update.
	* gnulib/import/m4/gnulib-cache.m4: Update.
	* gnulib/import/m4/gnulib-comp.m4: Update.
	* gnulib/import/float+.h: Import.
	* gnulib/import/float.c: Import.
	* gnulib/import/float.in.h: Import.
	* gnulib/import/fpucw.h: Import.
	* gnulib/import/frexp.c: Import.
	* gnulib/import/frexpl.c: Import.
	* gnulib/import/isnan.c: Import.
	* gnulib/import/isnand-nolibm.h: Import.
	* gnulib/import/isnand.c: Import.
	* gnulib/import/isnanl-nolibm.h: Import.
	* gnulib/import/isnanl.c: Import.
	* gnulib/import/itold.c: Import.
	* gnulib/import/m4/exponentd.m4: Import.
	* gnulib/import/m4/exponentl.m4: Import.
	* gnulib/import/m4/float_h.m4: Import.
	* gnulib/import/m4/fpieee.m4: Import.
	* gnulib/import/m4/frexp.m4: Import.
	* gnulib/import/m4/frexpl.m4: Import.
	* gnulib/import/m4/isnand.m4: Import.
	* gnulib/import/m4/isnanl.m4: Import.
	* gnulib/import/m4/math_h.m4: Import.
	* gnulib/import/math.c: Import.
	* gnulib/import/math.in.h: Import.
2013-06-21 16:17:02 +00:00
Jan Kratochvil
4353c9e6f6 gdb/
* common/linux-btrace.c (cpu_supports_btrace): Remove variable vendor,
	replace strcmp with signature_INTEL_ebx, signature_INTEL_ecx and
	signature_INTEL_edx comparisons.
2013-06-21 15:40:19 +00:00
gdbadmin
87f0aee73d *** empty log message *** 2013-06-21 00:00:32 +00:00
Doug Evans
6ac97d4cc6 symtab/15652
* dwarf2read.c (try_open_dwop_file): New arg search_cwd.
	All callers updated.
	(open_dwp_file): If we can't find the dwp file, search the basename
	in debug-file-directory.
2013-06-20 22:16:28 +00:00
Doug Evans
9341788208 * dwarf2read.c (struct dwp_file): Fix comment.
(open_and_init_dwp_file): Set dwp_file->name to bfd's file name.
2013-06-20 21:58:58 +00:00
Doug Evans
e3e06db30c * source.c (openp): Document OPF_TRY_CWD_FIRST+OPF_SEARCH_IN_PATH
better.
2013-06-20 20:12:58 +00:00
Yao Qi
0878d0fa8e gdb/
* breakpoint.c (create_breakpoint): Fix code indentation.
2013-06-20 06:49:06 +00:00
Yao Qi
023fa29bf4 gdb/
* breakpoint.c (create_breakpoints_sal_default): Remove
	parameter 'lsal'.  Update declaration.
	(bkpt_create_breakpoints_sal): Caller update.
	(tracepoint_create_breakpoints_sal): Likewise.
2013-06-20 06:46:11 +00:00
Yao Qi
c898adb7b2 Teach -data-list-register-values to not include unavailable registers
This patch adds an option --skip-unavailable to MI command
-data-list-register-values, so that unavailable registers are not
displayed (on the context of traceframes).

The old -data-list-register-values command behaves like

  -data-list-register-values x 0 8
  ^done,register-values=[{number="0",value="<unavailable>"},{number="8",value="0x80483de"}]

With this patch, an option --skip-unavailable is added,

  -data-list-register-values --skip-unavailable x 0 8
  ^done,register-values=[{number="8",value="0x80483de"}]

gdb:

2013-06-20  Pedro Alves  <pedro@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* NEWS: Mention the new option '--skip-unavailable' of command
	-data-list-register-values.
	* mi/mi-main.c (mi_cmd_data_list_register_values): Accept the
	--skip-unavailable option.  Adjust to use output_register.
	(output_register): Add new 'skip_unavailable' parameter.
	Handle it.

gdb/doc:

2013-06-20  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (GDB/MI Data Manipulation)
	<-data-list-register-values>: Document the --skip-unavailable
	option.

gdb/testsuite:

2013-06-20  Yao Qi  <yao@codesourcery.com>

	* gdb.trace/mi-trace-unavailable.exp: Set tracepoint on 'foo'
	and set an action.
	(test_trace_unavailable): Test command -data-list-register-values
	in the context of traceframe and with option --skip-unavailable.
	* gdb.trace/trace-unavailable.c (foo): New.
	(main): Call it.
	* gdb.mi/gdb2549.exp: Update matching pattern.
2013-06-20 00:39:11 +00:00
gdbadmin
181ff4a40d *** empty log message *** 2013-06-20 00:00:32 +00:00
Mike Frysinger
4d157a3dbe gdb: clean up x86 cpuid implementations
We've currently got 3 files doing open coded implementations of cpuid.
Each has its own set of workarounds and varying levels of how well
they're written and are generally hardcoded to specific cpuid functions.
If you try to build the latest gdb as a PIE on an i386 system, the build
will fail because one of them lacks PIC workarounds (wrt ebx).

Specifically, we have:
common/linux-btrace.c:
	two copies of cpuid asm w/specific args, one has no workarounds
	while the other implicitly does to avoid memcpy
go32-nat.c:
	two copies of cpuid asm w/specific args, one has workarounds to
	avoid memcpy
gdb/testsuite/gdb.arch/i386-cpuid.h:
	one general cpuid asm w/many workarounds copied from older gcc

Fortunately, that last header there is pretty damn good -- it handles
lots of edge cases, the code is nice & tight (uses gcc asm operands
rather than manual movs), and is already almost a general library type
header.  It's also the basis of what is now the public cpuid.h that is
shipped with gcc-4.3+.

So what I've done is pull that test header out and into gdb/common/
(not sure if there's a better place), synced to the version found in
gcc-4.8.0, put a wrapper API around it, and then cut over all the
existing call points to this new header.

Since the func already has support for "is cpuid supported on this proc",
it makes it trivial to push the i386/x86_64 ifdefs down into this wrapper
API too.  Now it can be safely used for all targets and gcc will elide
the unused code for us.

I've verified the gdb.arch testsuite still passes, and this code compiles
for an armv7a host as well as x86_64.  The go32-nat code has been left
ifdef-ed out until someone can test & verify the new stuff works (and if
it doesn't, figure out how to make the new code work).

URL: https://bugs.gentoo.org/467806
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-06-19 22:29:36 +00:00
Doug Evans
1ce4db08a4 * symfile.c (symfile_bfd_open): Delete unnecessary declaration.
(get_section_index): Ditto.
2013-06-19 22:20:58 +00:00
Luis Machado
d69cace40f * gdb.base/subst.exp: Delete default rules before further
tests.
2013-06-19 20:37:26 +00:00
Tom Tromey
0e4777df76 * breakpoint.c (_initialize_breakpoint): Remove trailing \n from
"dprintf" help.
2013-06-19 19:07:16 +00:00
Yao Qi
9bdd063664 gdb/testsuite/
* gdb.base/maint.exp: Make the test to command 'maint dump-me'
	unsupported if it is not registered.
2013-06-19 13:07:00 +00:00
Doug Evans
3190f0c611 * dwarf2read.c (dw2_symtab_iter_next): Check value of cu_index
before using it.
	(dw2_expand_symtabs_matching): Fix symbol kind validity check.
	Move test of cu_index closer to use.  Print complaint if cu_index
	is bad.
2013-06-19 04:38:51 +00:00
Doug Evans
937c708cce Fix this entry:
-	* dwarf2read.c (dwarf2_per_objfile): Replace uses of
+	* dwarf2read.c (dwarf2_per_objfile_free): Replace uses of
2013-06-19 04:32:57 +00:00
gdbadmin
de21c15716 *** empty log message *** 2013-06-19 00:00:02 +00:00
Joel Brobecker
8b89a20adb [Darwin] Fix cleanup leak in machoread.c:macho_symfile_read
This patch fixes a cleanup leak in macho_symfile_read (symbol_table):

          symbol_table = (asymbol **) xmalloc (storage_needed);
          make_cleanup (xfree, symbol_table);

Unfortunately, fixing the leak alone triggers a crash which occurs
while loading the symbols from an executable:

    % gdb
    (gdb) file g_exe
    [SIGSEGV]

The crash is caused by the fact that performing the cleanup
right after the call to macho_symtab_read, as currently done,
is too early.

Indeed, references to this symbol_table get saved in the oso_vector
global during the call to macho_symtab_read via calls to
macho_register_oso, and those references then get accessed
later on, when processing all the OSOs that got pushed (see
call to macho_symfile_read_all_oso).

This patch prevents this by using one single cleanup queue for
the entire function, rather than having additional separate
cleanup queues (Eg: for the handling of the minimal symbols),
thus preventing the premature free'ing of the minimal_symbols
array.

Secondly, this patch takes this opportunity for avoiding the use
of the oso_vector global, thus making it simpler to track its
lifetime.

gdb/ChangeLog:

        * machoread.c (oso_vector): Delete this global.
        (macho_register_oso): Add new parameter "oso_vector_ptr".
        Use it instead of the "oso_vector" global.
        (macho_symtab_read, macho_symfile_read_all_oso): Likewise.
        (macho_symfile_read): Use a local oso_vector, to be free'ed
        at the end of this function, in place of the old "oso_vector"
        global.  Update various function calls accordingly.  Use one
        single cleanup chain for the entire function.
2013-06-18 23:35:37 +00:00
Joel Brobecker
59b0c7c17a do not use dwarf2_per_objfile in dwarf2_per_objfile_free.
This patch fixes a case of multiple calls freeing the same data
while free-ing objfiles that have child objfiles (separate debug
info, as is the case on Darwin targets).

Following the code, free_objfile_separate_debug iterates over
all child objfiles of the parent objfile, calling free_objfile:

  for (child = objfile->separate_debug_objfile; child;)
    {
      struct objfile *next_child = child->separate_debug_objfile_link;
      free_objfile (child);
      child = next_child;
    }

This causes, among other things, the free'ing of the child objfile's
private data:

  /* Discard any data modules have associated with the objfile.  The function
     still may reference objfile->obfd.  */
  objfile_free_data (objfile);

This indirectly calls(back) dwarf2_per_objfile_free, which tries
to free the dwarf2read-specific data by using the dwarf2_per_objfile
global, eg:

  for (ix = 0; ix < dwarf2_per_objfile->n_comp_units; ++ix)

Even if we were lucky enough the first time around that this global
actually corresponds to the objfile being destroyed, the global
will still have the same value at the second iteration, and thus
become dangling. Indeed, after dwarf2_per_objfile_free returns
eventually back to free_objfile, free_objfile then deallocates
its objfile_obstack, where the dwarf2_per_objfile is allocated.

Ironically, there should be no need to access that global at all,
here, since the data is passed as an argument of the callback.
And it looks like the dwo/dwp/[...]-handling code is in fact already
using that argument, rather than the global.

This patch thus fixes the problem by doing the same, replacing
all references to DWARF2_PER_OBJFILE by uses of DATA instead.

gdb/ChangeLog:

        * dwarf2read.c (dwarf2_per_objfile): Replace uses of
        DWARF2_PER_OBJFILE by uses of DATA instead.
2013-06-18 23:35:24 +00:00
Tom Tromey
427cd150ee Fix PR cli/15603
This fixes PR cli/15603.

The bug here is that when a software watchpoint is being used, gdb
will stop responding to C-c.  This is a regression caused by the
"catch signal" patch.

The problem is that software watchpoints always end up on the bpstat
list.  However, this makes bpstat_explains_signal return
BPSTAT_SIGNAL_HIDE, causing infrun to think that the signal is not a
"random signal".

The fix is to change bpstat_explains_signal to handle this better.  I
chose to do it in a "clean API" way, by passing the signal value to
bpstat_explains_signal and then adding an explains_signal method for
watchpoints, which handles the specifics.

Built and regtested on x86-64 Fedora 18.
New test case included.

	* break-catch-sig.c (signal_catchpoint_explains_signal): Add 'sig'
	argument.
	* breakpoint.c (bpstat_explains_signal): Add 'sig' argument.
	Special case signals other than GDB_SIGNAL_TRAP.
	(explains_signal_watchpoint): New function.
	(base_breakpoint_explains_signal): Add 'sig' argument.
	(initialize_breakpoint_ops): Set 'explains_signal' method for
	watchpoints.
	* breakpoint.h (struct breakpoint_ops) <explains_signal>: Add
	signal argument.
	(bpstat_explains_signal): Likewise.
	* infrun.c (handle_syscall_event, handle_inferior_event): Update.

	* gdb.base/random-signal.c: New file.
	* gdb.base/random-signal.exp: New file.
2013-06-18 19:57:49 +00:00
Tom Tromey
2d57700bef * python/py-inferior.c (gdbpy_selected_inferior): Don't incref. 2013-06-18 18:43:27 +00:00
Tom Tromey
ac47519148 * python/python.c (finish_python_initialization): Decref
'pythondir' on failure path as well.
2013-06-18 18:42:09 +00:00
Will Newton
6de7c271e1 testsuite/gdb.base: Make skip test use defined behaviour.
The skip test currently relies on the order of evaluation of
arguments which is not defined. Use the comma operator where
order is defined instead.

gdb/testsuite/ChangeLog:

2013-06-18  Will Newton  <will.newton@linaro.org>

	* gdb.base/skip.c: Use comma to evaluate results of foo()
	and bar() before passing to baz().
	* gdb.base/skip.c: baz() now takes one argument instead of
	two.
2013-06-18 18:16:16 +00:00
Tom Tromey
5bd1ef568c Fix PR symtab/15391
PR symtab/15391 is a failure with the DW_OP_GNU_implicit_pointer
feature.

I tracked it down to a logic error in read_pieced_value.  The code
truncates this_size_bits according to the type size and offset too
early -- it should do it after taking bits_to_skip into account.

This patch fixes the bug.

While testing this, I also tripped across a latent bug because
indirect_pieced_value does not sign-extend where needed.  This patch
fixes this bug as well.

Finally, Pedro pointed out that a previous version implemented sign
extension incorrectly.  This version introduces a new gdb_sign_extend
function for this.  A couple of notes on this function:

* It has the gdb_ prefix to avoid clashes with various libraries that
  felt free to avoid proper namespacing.  There is a "sign_extend"
  function in a Tile GX header, in an SOM-related BFD header (and in
  sh64-tdep.c and as a macro in arm-wince-tdep.c, but those are
  ours...)

* I looked at all the sign extensions in gdb and didn't see ones that
  I felt comfortable converting to use this function; in large part
  because I don't have a good way to test the conversion.

Built and regtested on x86-64 Fedora 18.  New test cases included;
this required a minor addition to the DWARF assembler.  Note that the
DWARF CU made by implptrpiece.exp uses a funny pointer size in order
to show the sign-extension bug on all platforms.

	* dwarf2loc.c (read_pieced_value): Truncate this_size_bits
	after taking bits_to_skip into account.  Sign extend byte_offset.
	* utils.h (gdb_sign_extend): Declare.
	* utils.c (gdb_sign_extend): New function.

	* gdb.dwarf2/implptrpiece.exp: New file.
	* gdb.dwarf2/implptrconst.exp (d): New variable.
	Print d.
	* lib/dwarf2.exp (Dwarf::_location): Handle DW_OP_piece.
2013-06-18 18:11:19 +00:00
Jan Kratochvil
92fac8075a gdb/
* dwarf2read.c (write_psymtabs_to_index): Ignore NULL PSYMTAB.
2013-06-18 15:50:33 +00:00
Tom Tromey
e379b39141 fix python-selftest.exp failure with gdbserver
python-selftest.exp fails with an error when using the
native-gdbserver.exp board.

The bug is that the selftest code doesn't work in this situation.  It
never has.

This patch fixes the problem by pushing the needed check into
do_self_tests.  This helps prevent the problem in the future.

	* lib/selftest-support.exp (do_self_tests): Reject remote or
	non-native targets.
	* gdb.gdb/complaints.exp: Remove check.
	* gdb.gdb/observer.exp: Remove check.
	* gdb.gdb/xfullpath.exp: Remove check.
	* gdb.gdb/complaints.exp: Remove check.
2013-06-18 14:12:09 +00:00
gdbadmin
9f9b731fe3 *** empty log message *** 2013-06-18 00:00:32 +00:00
Pierre Muller
2d50327282 * corelow.c (core_open): Print GDB signal name instead of target
signal number.
2013-06-17 06:14:24 +00:00
Mike Frysinger
6916fd9820 gdb: ignore generated gcore 2013-06-17 04:39:15 +00:00
gdbadmin
0b266b4186 *** empty log message *** 2013-06-17 00:00:33 +00:00
gdbadmin
77c7972fa8 *** empty log message *** 2013-06-16 00:00:03 +00:00
gdbadmin
6da195136d *** empty log message *** 2013-06-15 00:00:03 +00:00
gdbadmin
1a39a68ee7 *** empty log message *** 2013-06-14 00:00:32 +00:00
Doug Evans
9c02c12947 * dwarf2read.c (try_open_dwop_file): Work around behaviour of
OPF_TRY_CWD_FIRST to not search path if the file contains a '/'.
2013-06-13 23:01:37 +00:00
gdbadmin
479a1f0a6f *** empty log message *** 2013-06-13 00:00:32 +00:00
Pedro Alves
760256f967 [GDBserver] Fix gdb.threads/siginfo-threads.exp, gdb.base/siginfo-obj.exp regressions.
This fixes the regressions reported at
<http://sourceware.org/ml/gdb-patches/2013-06/msg00280.html>:

 $ runtest-gdbserver gdb.base/siginfo-obj.exp gdb.base/siginfo-thread.exp gdb.threads/siginfo-threads.exp
 Running ./gdb.base/siginfo-thread.exp ...
 FAIL: gdb.base/siginfo-thread.exp: p ssi_addr
 Running ./gdb.threads/siginfo-threads.exp ...
 FAIL: gdb.threads/siginfo-threads.exp: signal 0 si_pid
 FAIL: gdb.threads/siginfo-threads.exp: signal 1 si_pid
 FAIL: gdb.threads/siginfo-threads.exp: signal 2 si_pid
 FAIL: gdb.threads/siginfo-threads.exp: signal 3 si_pid
 Running ./gdb.base/siginfo-obj.exp ...
 FAIL: gdb.base/siginfo-obj.exp: p ssi_addr
 FAIL: gdb.base/siginfo-obj.exp: p ssi_addr

The multi-arch patch made GDBserver do the the wrong siginfo layout
conversion, because most uses of `linux_is_elf64' were removed, and it
ended up never set.  A global really is the wrong thing to use as
elf64-ness is a per-process property; `linux_is_elf64' was just
accidentally left behind.

Tested on x86_64 Fedora 17.

gdb/gdbserver/
2013-06-12  Pedro Alves  <palves@redhat.com>

	* linux-x86-low.c (linux_is_elf64): Delete global.
	(x86_siginfo_fixup): Replace reference to `linux_is_elf64' global
	with local linux_pid_exe_is_elf_64_file use.
2013-06-12 16:05:39 +00:00
Phil Muldoon
d0548fa274 2013-06-12 Phil Muldoon <pmuldoon@redhat.com>
* stack.c (backtrace_command_1): Fix indentation.
2013-06-12 12:16:47 +00:00
gdbadmin
a9bb8c343e *** empty log message *** 2013-06-12 00:00:02 +00:00
Pedro Alves
030031eed5 Lazily allocate 'struct regsets_info'::disabled_regsets.
There's no need for every arch to pre-allocate disabled_regsets.
Chances are the array won't be used.

(I have a hunch that with some more work we could dispense with
initialize_regsets_info.)

Tested on x86_64 Fedora 17 w/ -lmcheck.

gdb/gdbserver/
2013-06-11  Pedro Alves  <palves@redhat.com>

	* linux-low.c (regset_disabled, disable_regset): New functions.
	(regsets_fetch_inferior_registers)
	(regsets_store_inferior_registers): Use them.
	(initialize_regsets_info); Don't allocate the disabled_regsets
	array here.
	* linux-low.h (struct regsets_info) <disabled_regsets>: Extend
	comment.
2013-06-11 18:05:57 +00:00
Pedro Alves
5da6eb0a10 Fix regression from multi-arch patch.
This fixes the regression reported at
<http://sourceware.org/ml/gdb-patches/2013-06/msg00185.html>.

GDBserver was reaching:

static int
regsets_fetch_inferior_registers (struct regsets_info *regsets_info,
				  struct regcache *regcache)
{
  struct regset_info *regset;
  int saw_general_regs = 0;
  int pid;
  struct iovec iov;

  regset = regsets_info->regsets;

  pid = lwpid_of (get_thread_lwp (current_inferior));
  while (regset->size >= 0)
    {
      void *buf, *data;
      int nt_type, res;

      if (regset->size == 0
	  || regsets_info->disabled_regsets[regset - regsets_info->regsets])
	{
>>>>>>>	  regset ++;      <<<<<<<  HERE
	  continue;
	}

Because info->disabled_regsets[] was not being initialized, and that
causes all sorts of wrong.

gdb/gdbserver/
2013-06-11  Pedro Alves  <palves@redhat.com>

	* linux-low.c (initialize_regsets_info): Use xcalloc instead of
	xmalloc.
2013-06-11 17:26:25 +00:00
Pedro Alves
7e5aaa093c [GDBserver] Initialize the x32 avx target description.
All target descriptions must be initialized at startup, but this one was forgotten.

gdb/gdbserver/
2013-06-11  Pedro Alves  <palves@redhat.com>

	* linux-x86-low.c (initialize_low_arch): Call
	init_registers_x32_avx_linux.
2013-06-11 13:32:52 +00:00
Joel Brobecker
2212802810 windows-nat.c:thread_rec: Add missing empty line after var declaration.
gdb/ChangeLog:

        * window-nat.c (thread_rec): Add missing empty line after
        local variable declaration.
2013-06-11 11:03:42 +00:00
Joel Brobecker
2ed3e00940 [windows] Fix accidental change of %u -> %d in SuspendThread warning.
While enhancing the warning printed in when SuspendThread fails,
I accidently changed the format used to print the error code
from %u to %d. This patch reverts it back.

gdb/ChangeLog:

        * windows-nat.c (thread_rec): Revert format used to print
        error code returned by SuspendThread from %d back to %u.
2013-06-11 11:01:46 +00:00
Joel Brobecker
0c3d84be3e windows: Prefix thread ID values with "0x" in debug traces
The windows-nat.c debug traces print the thread ID in base 16,
but give no indication of it. So, in a trace like the following...

    gdb: kernel event for pid=4816 tid=720 code=CREATE_THREAD_DEBUG_EVENT)

... where tid is "720", it's easy to be confused and think that
the thread ID is 720 rather than 0x720.  This patch avoids the
confusion by adding the usual "0x" prefix used for hexadecimal
values.

gdb/ChangeLog:

        * windows-nat.c (windows_continue): Add "0x" prefix for thread
        ID in debug trace.
        (get_windows_debug_event): Likewise, for all debug traces.
2013-06-11 10:20:24 +00:00
Joel Brobecker
80e88e1aa2 windows: Add thread ID in SuspendThread error warning message.
This patch adds the thread ID to a warning printed when a call to
SuspendThread fails. It will help investigate issues, particularly
when correlated with the various debug traces provided by the
windows-nat module.

For the record, the output has been changed from...

    warning: SuspendThread failed. (winerr 6)

... to ...

    warning: SuspendThread (tid=0x720) failed. (winerr 6)

gdb/ChangeLog:

        * window-nat.c (thread_rec): Add thread ID in SuspendThread
        warning message.
2013-06-11 10:20:11 +00:00
gdbadmin
37f134cb96 *** empty log message *** 2013-06-11 00:00:02 +00:00
gdbadmin
a7cfa99ecf *** empty log message *** 2013-06-10 00:00:32 +00:00
Jan Kratochvil
d878444cd9 gdb/gdbserver/
Fix compatibility with Android Bionic.
	* linux-low.c (linux_qxfer_libraries_svr4): Ignore first entry even if
	it is not empty.
2013-06-09 17:08:47 +00:00