aboutsummaryrefslogtreecommitdiff
path: root/gdb/inferior.h
AgeCommit message (Collapse)AuthorFilesLines
2014-03-30* inferior.h (enum stop_kind): Improve comment.Doug Evans1-8/+8
2014-03-20PR breakpoints/7143 - Watchpoint does not trigger when first setPedro Alves1-0/+6
Say the program is stopped at a breakpoint, and the user sets a watchpoint. When the program is next resumed, GDB will first step over the breakpoint, as explained in the manual: @value {GDBN} normally ignores breakpoints when it resumes execution, until at least one instruction has been executed. If it it did not do this, you would be unable to proceed past a breakpoint without first disabling the breakpoint. This rule applies whether or not the breakpoint already existed when your program stopped. However, GDB currently also removes watchpoints, catchpoints, etc., and that means that the first instruction off the breakpoint does not trigger the watchpoint, catchpoint, etc. testsuite/gdb.base/watchpoint.exp has a kfail for this. The PR proposes installing watchpoints only when stepping over a breakpoint, but that misses catchpoints, etc. A better fix would instead work from the opposite direction -- remove only real breakpoints, leaving all other kinds of breakpoints inserted. But, going further, it's really a waste to constantly remove/insert all breakpoints when stepping over a single breakpoint (generating a pair of RSP z/Z packets for each breakpoint), so the fix goes a step further and makes GDB remove _only_ the breakpoint being stepped over, leaving all others installed. This then has the added benefit of reducing breakpoint-related RSP traffic substancialy when there are many breakpoints set. gdb/ 2014-03-20 Pedro Alves <palves@redhat.com> PR breakpoints/7143 * breakpoint.c (should_be_inserted): Don't insert breakpoints that are being stepped over. (breakpoint_address_match): Make extern. * breakpoint.h (breakpoint_address_match): New declaration. * inferior.h (stepping_past_instruction_at): New declaration. * infrun.c (struct step_over_info): New type. (step_over_info): New global. (set_step_over_info, clear_step_over_info) (stepping_past_instruction_at): New functions. (handle_inferior_event): Clear the step-over info when trap_expected is cleared. (resume): Remove now stale comment. (clear_proceed_status): Clear step-over info. (proceed): Adjust step-over handling to set or clear the step-over info instead of removing all breakpoints. (handle_signal_stop): When setting up a thread-hop, don't remove breakpoints here. (stop_stepping): Clear step-over info. (keep_going): Adjust step-over handling to set or clear step-over info and then always inserting breakpoints, instead of removing all breakpoints when stepping over one. gdb/testsuite/ 2014-03-20 Pedro Alves <palves@redhat.com> PR breakpoints/7143 * gdb.base/watchpoint.exp: Mention bugzilla bug number instead of old gnats gdb/38. Remove kfail. Adjust to use gdb_test instead of gdb_test_multiple. * gdb.cp/annota2.exp: Remove kfail for gdb/38. * gdb.cp/annota3.exp: Remove kfail for gdb/38.
2014-03-18PR gdb/13860: make "-exec-foo"'s MI output equal to "foo"'s MI output.Pedro Alves1-0/+2
Part of PR gdb/13860 is about the mi-solib.exp test's output being different in sync vs async modes. sync: >./gdb -nx -q ./testsuite/gdb.mi/solib-main -ex "set stop-on-solib-events 1" -ex "set target-async off" -i=mi =thread-group-added,id="i1" ~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main..." ~"done.\n" (gdb) &"start\n" ~"Temporary breakpoint 1 at 0x400608: file ../../../src/gdb/testsuite/gdb.mi/solib-main.c, line 21.\n" =breakpoint-created,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x0000000000400608",func="main",file="../../../src/gdb/testsuite/gdb.mi/solib-main.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/solib-main.c",line="21",times="0",original-location="main"} ~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n" =thread-group-started,id="i1",pid="17724" =thread-created,id="1",group-id="i1" ^running *running,thread-id="all" (gdb) =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1" ~"Stopped due to shared library event (no libraries added or removed)\n" *stopped,reason="solib-event",frame={addr="0x000000379180f990",func="_dl_debug_state",args=[],from="/lib64/ld-linux-x86-64.so.2"},thread-id="1",stopped-threads="all",core="3" (gdb) async: >./gdb -nx -q ./testsuite/gdb.mi/solib-main -ex "set stop-on-solib-events 1" -ex "set target-async on" -i=mi =thread-group-added,id="i1" ~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main..." ~"done.\n" (gdb) start &"start\n" ~"Temporary breakpoint 1 at 0x400608: file ../../../src/gdb/testsuite/gdb.mi/solib-main.c, line 21.\n" =breakpoint-created,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x0000000000400608",func="main",file="../../../src/gdb/testsuite/gdb.mi/solib-main.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/solib-main.c",line="21",times="0",original-location="main"} ~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n" =thread-group-started,id="i1",pid="17729" =thread-created,id="1",group-id="i1" ^running *running,thread-id="all" =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1" (gdb) *stopped,reason="solib-event",thread-id="1",stopped-threads="all",core="1" For now, let's focus only on the *stopped event. We see that the async output is missing frame info. And this causes a test failure in async mode, as "mi_expect_stop solib-event" wants to see the frame info. However, if we compare the event output when a real MI execution command is used, compared to a CLI command (e.g., run vs -exec-run, next vs -exec-next, etc.), we see: >./gdb -nx -q ./testsuite/gdb.mi/solib-main -ex "set stop-on-solib-events 1" -ex "set target-async off" -i=mi =thread-group-added,id="i1" ~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main..." ~"done.\n" (gdb) r &"r\n" ~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n" =thread-group-started,id="i1",pid="17751" =thread-created,id="1",group-id="i1" ^running *running,thread-id="all" (gdb) =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1" ~"Stopped due to shared library event (no libraries added or removed)\n" *stopped,reason="solib-event",frame={addr="0x000000379180f990",func="_dl_debug_state",args=[],from="/lib64/ld-linux-x86-64.so.2"},thread-id="1",stopped-threads="all",core="3" (gdb) -exec-run =thread-exited,id="1",group-id="i1" =thread-group-exited,id="i1" =library-unloaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",thread-group="i1" =thread-group-started,id="i1",pid="17754" =thread-created,id="1",group-id="i1" ^running *running,thread-id="all" (gdb) =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1" *stopped,reason="solib-event",thread-id="1",stopped-threads="all",core="1" =thread-selected,id="1" (gdb) As seen above, with MI commands, the *stopped event _doesn't_ have frame info. This is because normal_stop, as commanded by the result of bpstat_print, skips printing frame info in this case (it's an "event", not a "breakpoint"), and when the interpreter is MI, mi_on_normal_stop skips calling print_stack_frame, as the normal_stop call was already done with the MI uiout. This explains why the async output is different even with a CLI command. Its because in async mode, the mi_on_normal_stop path is always taken; it is always reached with the MI uiout, because the stop is handled from the event loop, instead of from within `proceed -> wait_for_inferior -> normal_stop' with the interpreter overridden, as in sync mode. This patch fixes the issue by making all cases output the same *stopped event, by factoring out the print code from normal_stop, and using it from mi_on_normal_stop as well. I chose the *stopped output without a frame, mainly because that is what you already get if you use MI execution commands, the commands frontends are supposed to use (except when implementing a console). This patch makes it simpler to tweak the MI output differently if desired, as we only have to change the centralized print_stop_event (taking into account whether the uiout is MI-like), and all different modes will change accordingly. Tested on x86_64 Fedora 17, no regressions. The mi-solib.exp test no longer fails in async mode with this patch, so the patch removes the kfail. 2014-03-18 Pedro Alves <palves@redhat.com> PR gdb/13860 * inferior.h (print_stop_event): Declare. * infrun.c (print_stop_event): New, factored out from ... (normal_stop): ... this. * mi/mi-interp.c (mi_on_normal_stop): Use print_stop_event instead of bpstat_print/print_stack_frame. 2014-03-18 Pedro Alves <palves@redhat.com> PR gdb/13860 * gdb.mi/mi-solib.exp: Remove gdb/13860 kfail. * lib/mi-support.exp (mi_expect_stop): Add special handling for solib-event.
2014-03-14Rename native-only terminal related functions.Pedro Alves1-8/+8
Looking at target_terminal_inferior etc. in async mode, I realized that the naming of the terminal_inferior, terminal_ours, etc. functions doesn't really give a clue that they're meant for the native target only. This patch renames them. There's already child_terminal_info using the child_ prefix, and, they're most prominently installed by inf-child.c, so I went with the child_ prefix. I dropped "inferior" from a couple to make the name match the corresponding target method. Tested on x86_64 Fedora 17, and cross built for mingw. I didn't test gnu-nat.c, but I think the change is as obvious as it gets. I grepped the tree looking for other potential spots that would need adjustment but this is all I found. If something breaks, it should be trivial to fix. gdb/ 2014-03-14 Pedro Alves <palves@redhat.com> * inferior.h (terminal_ours_for_output): Rename to ... (child_terminal_ours_for_output): ... this. (terminal_save_ours): Rename to ... (child_terminal_save_ours): ... this. (terminal_ours): Rename to ... (child_terminal_ours): ... this. (terminal_inferior): Rename to ... (child_terminal_inferior): ... this. (terminal_init_inferior): Rename to ... (child_terminal_init_inferior): ... this. (terminal_init_inferior_with_pgrp): Rename to ... (child_terminal_init_inferior_with_pgrp): ... this. * inflow.c (terminal_init_inferior_with_pgrp): Rename to ... (child_terminal_init_with_pgrp): ... this. (terminal_save_ours): Rename to ... (child_terminal_save_ours): ... this. (terminal_init_inferior): Rename to ... (child_terminal_init): ... this. Adjust. (terminal_inferior): Rename to ... (child_terminal_inferior): ... this. (terminal_ours_for_output): Rename to ... (child_terminal_ours_for_output): ... this. Adjust. (terminal_ours): Rename to ... (child_terminal_ours): ... this. (terminal_ours_1): Rename to ... (child_terminal_ours_1): ... this. Adjust. * linux-nat.c (linux_nat_terminal_inferior): Adjust. * windows-nat.c (do_initial_windows_stuff): Adjust. * gnu-nat.c (gnu_terminal_init_inferior): Rename to ... (gnu_terminal_init): ... this. Adjust. (gnu_target): Adjust. * inf-child.c (inf_child_target): Adjust.
2014-02-27Move ptid_match to common/ptid.c.Hui Zhu1-10/+0
So that gdbserver can use it too. gdb/ 2014-02-27 Hui Zhu <hui@codesourcery.com> PR 12702 * infrun.c (ptid_match): Move ... * common/ptid.c (ptid_match): ... here. * inferior.h (ptid_match): Move ... * common/ptid.h (ptid_match): ... here.
2014-02-19Add target_ops argument to to_terminal_infoTom Tromey1-1/+1
2014-02-19 Tom Tromey <tromey@redhat.com> * target.h (struct target_ops) <to_terminal_info>: Add argument. (target_terminal_info): Add argument. * target.c (debug_to_terminal_info): Add argument. (default_terminal_info): Likewise. * inflow.c (child_terminal_info): Add 'self' argument. * inferior.h (child_terminal_info): Add 'self' argument. * go32-nat.c (go32_terminal_info): Add 'self' argument.
2014-02-19Add target_ops argument to to_terminal_save_oursTom Tromey1-1/+1
2014-02-19 Tom Tromey <tromey@redhat.com> * target.h (struct target_ops) <to_terminal_save_ours>: Add argument. (target_terminal_save_ours): Add argument. * target.c (debug_to_terminal_save_ours): Add argument. (update_current_target): Update. * inflow.c (terminal_save_ours): Add 'self' argument. * inferior.h (terminal_save_ours): Add 'self' argument.
2014-02-19Add target_ops argument to to_terminal_oursTom Tromey1-1/+1
2014-02-19 Tom Tromey <tromey@redhat.com> * target.h (struct target_ops) <to_terminal_ours>: Add argument. (target_terminal_ours): Add argument. * target.c (debug_to_terminal_ours): Add argument. (update_current_target): Update. * remote.c (remote_terminal_ours): Add 'self' argument. (remote_close): Update. * linux-nat.c (linux_nat_terminal_ours): Add 'self' argument. * inflow.c (terminal_ours): Add 'self' argument. * inferior.h (terminal_ours): Add 'self' argument. * go32-nat.c (go32_terminal_ours): Add 'self' argument.
2014-02-19Add target_ops argument to to_terminal_ours_for_outputTom Tromey1-1/+1
2014-02-19 Pedro Alves <palves@redhat.com> Tom Tromey <tromey@redhat.com> * target.h (struct target_ops) <to_terminal_ours_for_output>: Add argument. (target_terminal_ours_for_output): Add argument. * target.c (debug_to_terminal_ours_for_output): Add argument. (update_current_target): Update. * inflow.c (terminal_ours_for_output): Add 'self' argument. * inferior.h (terminal_ours_for_output): Add 'self' argument. * go32-nat.c (go32_terminal_ours): Add 'self' argument.
2014-02-19Add target_ops argument to to_terminal_inferiorTom Tromey1-1/+1
2014-02-19 Tom Tromey <tromey@redhat.com> * target.h (struct target_ops) <to_terminal_inferior>: Add argument. * target.c (target_terminal_inferior): Add argument. (update_current_target): Update. * remote.c (remote_terminal_inferior): Add 'self' argument. * linux-nat.c (linux_nat_terminal_inferior): Add 'self' argument. * inflow.c (terminal_inferior): Add 'self' argument. * inferior.h (terminal_inferior): Add 'self' argument. * go32-nat.c (go32_terminal_inferior): Add 'self' argument. (go32_terminal_inferior): Add 'self' argument.
2014-02-19Add target_ops argument to to_terminal_initTom Tromey1-1/+1
2014-02-19 Tom Tromey <tromey@redhat.com> * target.h (struct target_ops) <to_terminal_init>: Add argument. (target_terminal_init): Add argument. * target.c (debug_to_terminal_init): Add argument. (update_current_target): Update. * inflow.c (terminal_init_inferior): Add 'self' argument. * inferior.h (terminal_init_inferior): Add 'self' argument. * go32-nat.c (go32_terminal_init): Add 'self' argument. * gnu-nat.c (gnu_terminal_init_inferior): Add 'self' argument.
2014-01-01Update Copyright year range in all files maintained by GDB.Joel Brobecker1-1/+1
2013-10-25Make STARTUP_WITH_SHELL a runtime toggle -- add new "set/show ↵Pedro Alves1-18/+24
startup-with-shell" option. Occasionaly we hear about people having problems with GDB not being able to start programs (with "run"/"start"). GDB spawns a shell to start the program, and most often, it'll be the case that the problem is actually with the user's shell setup. GDB has code to disable the use of the shell to start programs. That's the STARTUP_WITH_SHELL macro that native targets could set to 0 in their nm.h file (though no target actually uses it nowadays). This patch makes that setting a run-time knob instead. This will be useful to quickly diagnose such shell issues, and might also come in handy at other times (such as when debugging the shell itself, if you don't have a different shell handy). gdb/ 2013-10-24 Pedro Alves <palves@redhat.com> * NEWS (New options): Mention set/show startup-with-shell. * config/alpha/nm-osf3.h (START_INFERIOR_TRAPS_EXPECTED): Set to 2 instead of 3. * fork-child.c (fork_inferior, startup_inferior): Handle 'set startup-with-shell'. (show_startup_with_shell): New function. (_initialize_fork_child): Register the set/show startup-with-shell commands. * inf-ptrace.c (inf_ptrace_create_inferior): Remove comment. * inf-ttrace.c (inf_ttrace_him): Remove comment. * procfs.c (procfs_init_inferior): Remove comment. * infcmd.c (startup_with_shell): New global. * inferior.h (startup_with_shell): Declare global. (STARTUP_WITH_SHELL): Delete. (START_INFERIOR_TRAPS_EXPECTED): Set to 1 by default instead of 2. gdb/doc/ 2013-10-24 Pedro Alves <palves@redhat.com> * gdb.texinfo (Starting): Document set/show startup-with-shell.
2013-10-07This patch adds a new convenience variable called "$_exitsignal", whichSergio Durigan Junior1-0/+6
will hold the signal number when the inferior terminates due to the uncaught signal. I've made modifications on infrun.c:handle_inferior_event such that $_exitcode gets cleared when the inferior signalled, and vice-versa. This assumption was made because the variables are mutually exclusive, i.e., when the inferior terminates because of an uncaught signal it is not possible for it to return. I have also made modifications such that when a corefile is loaded, $_exitsignal gets set to the uncaught signal that "killed" the inferior, and $_exitcode is cleared. The patch also adds a NEWS entry, documentation bits, and a testcase. The documentation entry explains how to use $_exitsignal and $_exitcode in a GDB script, by making use of the new $_isvoid convenience function. gdb/ 2013-10-06 Sergio Durigan Junior <sergiodj@redhat.com> * NEWS: Mention new convenience variable $_exitsignal. * corelow.c (core_open): Reset exit convenience variables. Set $_exitsignal to the uncaught signal which generated the corefile. * infrun.c (handle_inferior_event): Reset exit convenience variables. Set $_exitsignal for TARGET_WAITKIND_SIGNALLED. (clear_exit_convenience_vars): New function. * inferior.h (clear_exit_convenience_vars): New prototype. gdb/testsuite/ 2013-10-06 Sergio Durigan Junior <sergiodj@redhat.com> * gdb.base/corefile.exp: Test whether $_exitsignal is set and $_exitcode is void when opening a corefile. * gdb.base/exitsignal.exp: New file. * gdb.base/segv.c: Likewise. * gdb.base/normal.c: Likewise. gdb/doc/ 2013-10-06 Sergio Durigan Junior <sergiodj@redhat.com> * gdb.texinfo (Convenience Variables): Document $_exitsignal. Update entry for $_exitcode.
2013-09-30 * aarch64-linux-nat.c: Replace PIDGET with ptid_get_pid.Luis Machado1-1/+1
Replace TIDGET with ptid_get_lwp. Replace GET_LWP with ptid_get_lwp. * aix-thread.c (BUILD_THREAD, BUILD_LWP): Remove. Replace BUILD_THREAD with ptid_build. Replace BUILD_LWP with ptid_build. Replace PIDGET with ptid_get_pid. Replace TIDGET with ptid_get_lwp. * alphabsd-nat.c: Replace PIDGET with ptid_get_pid. * amd64-linux-nat.c: Replace PIDGET with ptid_get_pid. Replace TIDGET with ptid_get_lwp. * amd64bsd-nat.c: Replace PIDGET with ptid_get_pid. * arm-linux-nat.c: Replace PIDGET with ptid_get_pid. Replace TIDGET with ptid_get_lwp. Replace GET_LWP with ptid_get_lwp. * armnbsd-nat.c: Replace PIDGET with ptid_get_pid. * auxv.c: Likewise. * breakpoint.c: Likewise. * common/ptid.c (ptid_is_pid): Condense check for null_ptid and minus_one_ptid. (ptid_lwp_p): New function. (ptid_tid_p): New function. * common/ptid.h: Update comments for accessors. (ptid_lwp_p): New prototype. (ptid_tid_p): New prototype. * defs.h (PIDGET, TIDGET, MERGEPID): Do not define. * gcore.c: Replace PIDGET with ptid_get_pid. * gdbthread.h: Likewise. * gnu-nat.c: Likewise. * hppa-linux-nat.c: Replace PIDGET with ptid_get_pid. Replace TIDGET with ptid_get_lwp. * hppabsd-nat.c: Replace PIDGET with ptid_get_pid. * hppanbsd-nat.c: Likewise. * i386-linux-nat.c: Replace PIDGET with ptid_get_pid. Replace TIDGET with ptid_get_lwp. * i386bsd-nat.c: Replace PIDGET with ptid_get_pid. * ia64-linux-nat.c: Replace PIDGET with ptid_get_pid. * infcmd.c: Likewise. * inferior.h: Likewise. * inflow.c: Likewise. * infrun.c: Likewise. * linux-fork.c: Likewise. * linux-nat.c: Replace PIDGET with ptid_get_pid. Replace GET_PID with ptid_get_pid. Replace is_lwp with ptid_lwp_p. Replace GET_LWP with ptid_get_lwp. Replace BUILD_LWP with ptid_build.
2013-09-03 * inf-child.c (inf_child_follow_fork) New parameterLuis Machado1-5/+0
detach_fork. * inf-ptrace.c (inf_ptrace_follow_fork): Likewise. * inf-ttrace.c (inf_ttrace_follow_fork): Likewise. * inferior.h (detach_fork): Remove. * infrun.c (detach_fork): Adjust comment and make it static. (follow_fork): Pass detach_fork parameter to target_follow_fork. * linux-nat.c (linux_child_follow_fork): New parameter detach_fork. * target.c (target_follow_fork): New parameter detach_fork. Pass detach_fork as parameter and print its value. * target.h (struct target_ops) <to_follow_fork>: New int parameter. (target_follow_fork): New parameter detach_fork.
2013-05-14 * go32-nat.c (go32_terminal_info): Make 'args' const.Tom Tromey1-1/+1
* inferior.h (child_terminal_info): Update. * inflow.c (child_terminal_info): Make 'args' const. * target.c (default_terminal_info): Make 'args' const. (debug_to_terminal_save_ours): Likewise. * target.h (struct target_ops) <to_terminal_info>: Make argument const.
2013-01-162013-01-03 Pedro Alves <palves@redhat.com>Tom Tromey1-0/+2
Tom Tromey <tromey@redhat.com> PR cli/7221: * NEWS: Add "catch signal". * breakpoint.c (base_breakpoint_ops): No longer static. (bpstat_explains_signal): New function. (init_catchpoint): No longer static. (base_breakpoint_explains_signal): New function. (base_breakpoint_ops): Initialize new field. * breakpoint.h (enum bpstat_signal_value): New. (struct breakpoint_ops) <explains_signal>: New field. (bpstat_explains_signal): Remove macro, declare as function. (base_breakpoint_ops, init_catchpoint): Declare. * break-catch-sig.c: New file. * inferior.h (signal_catch_update): Declare. * infrun.c (signal_catch): New global. (handle_syscall_event): Update for change to bpstat_explains_signal. (handle_inferior_event): Likewise. Always handle random signals via bpstats. (signal_cache_update): Check signal_catch. (signal_catch_update): New function. (_initialize_infrun): Initialize signal_catch. * Makefile.in (SFILES): Add break-catch-sig.c. (COMMON_OBS): Add break-catch-sig.o. gdb/doc * gdb.texinfo (Set Catchpoints): Document "catch signal". (Signals): Likewise. gdb/testsuite * gdb.base/catch-signal.c: New file. * gdb.base/catch-signal.exp: New file.
2013-01-01Update years in copyright notice for the GDB files.Joel Brobecker1-2/+1
Two modifications: 1. The addition of 2013 to the copyright year range for every file; 2. The use of a single year range, instead of potentially multiple year ranges, as approved by the FSF.
2012-12-18 * infcmd.c (all_registers_info, nexti_command, stepi_command)Tom Tromey1-10/+0
(continue_command, interrupt_target_command): Now static. (registers_info): Remove declaration. * inferior.h (all_registers_info, nexti_command, stepi_command) (continue_command, interrupt_target_command): Don't declare.
2012-11-30gdb/Yao Qi1-6/+0
2012-11-30 Yao Qi <yao@codesourcery.com> * infrun.c (error_is_running, ensure_not_running): Move them to ... * infcmd.c (error_is_running, ensure_not_running): ... here. Make them 'static'. * inferior.h: Remove declarations of error_is_running and ensure_not_running.
2012-11-09gdb/Pedro Alves1-0/+18
2012-11-09 Pedro Alves <palves@redhat.com> * gdbarch.sh (target_gdbarch) <gdbarch.h>: Reimplement as macro. (get_target_gdbarch) <gdbarch.h>: New function. (startup_gdbarch) <gdbarch.h>: Declare. <gdbarch.c> (target_gdbarch): Delete. <gdbarch.c> (deprecated_target_gdbarch_select_hack): Set the current inferior's gdbarch. <gdbarch.c> (get_target_gdbarch): New function. * inferior.c: Include target-descriptions.h. (free_inferior): Free target description info. (add_inferior_with_spaces): Set the inferior's initial architecture. (clone_inferior_command): Copy the original inferior's target description if it was user specified. (initialize_inferiors): Add comment. * inferior.h (struct target_desc_info): Forward declare. (struct inferior) <gdbarch>: New field. * linux-nat.c: Include target-descriptions.h. (linux_child_follow_fork): Copy the parent's architecture and target description to the child. * target-descriptions.c: Include inferior.h. (struct target_desc_info): New structure, holding the equivalents of ... (target_desc_fetched, current_target_desc) (target_description_filename): ... these removed globals. (get_tdesc_info, target_desc_info_from_user_p) (copy_inferior_target_desc_info, target_desc_info_free): New. (target_desc_fetched, current_target_desc) (target_description_filename): Reimplemented as convenience macros. (tdesc_filename_cmd_string): New global. (set_tdesc_filename_cmd): Copy the string manipulated by the "set tdescs filename ..." commands to the per-inferior equivalent. (show_tdesc_filename_cmd): Get the value to show from the per-inferior description filename. (_initilize_target_descriptions): Change the "set/show tdesc filename" commands' variable. * target-descriptions.h (struct target_desc, struct target_desc_info) (struct inferior): Forward declare. (target_find_description, target_clear_description) (target_current_description): Adjust comments. (copy_inferior_target_desc_info, target_desc_info_free) (target_desc_info_from_user_p). Declare. gdb/testsuite/ 2012-11-09 Pedro Alves <palves@redhat.com> * gdb.multi/multi-arch.exp: New.
2012-08-22 * auto-load.c (_initialize_auto_load): Update.Tom Tromey1-10/+3
* solib-svr4.c (_initialize_svr4_solib): Update * solib-dsbt.c (_initialize_dsbt_solib): Update. * solib-darwin.c (_initialize_darwin_solib): Update. * registry.h: New file. * python/py-progspace.c (gdbpy_initialize_pspace): Update. * python/py-inferior.c (gdbpy_initialize_inferior): Update. * progspace.h: Include registry.h. Use DECLARE_REGISTRY. (register_program_space_data_with_cleanup) (register_program_space_data, program_space_alloc_data) (clear_program_space_data, set_program_space_data) (program_space_data): Don't declare. * progspace.c: Use DEFINE_REGISTRY. (struct program_space_data, struct program_space_data_registration, struct program_space_data_registry, program_space_data_registry) (register_program_space_data_with_cleanup) (register_program_space_data, program_space_alloc_data) (program_space_free_data, clear_program_space_data) (set_program_space_data, program_space_data): Remove. * objfiles.h: Include registry.h. Use DECLARE_REGISTRY. (struct objfile) <data, num_data>: Replace with REGISTRY_FIELDS. (register_objfile_data_with_cleanup, register_objfile_data) (clear_objfile_data, set_objfile_data, objfile_data): Don't declare. * objfiles.c: Use DEFINE_REGISTRY. (struct objfile_data, struct objfile_data_registration, struct objfile_data_registry, objfile_data_registry) (register_objfile_data_with_cleanup, register_objfile_data) (objfile_alloc_data, objfile_free_data, clear_objfile_data) (set_objfile_data, objfile_data): Remove. (_initialize_objfiles): Update. * jit.c (_initialize_jit): Update. * inflow.c (_initialize_inflow): Update. * inferior.h: Include registry.h. Use DECLARE_REGISTRY. (struct inferior) <data, num_data>: Replace with REGISTRY_FIELDS. (register_inferior_data_with_cleanup, register_inferior_data) (clear_inferior_data, set_inferior_data, inferior_data): Don't declare. * inferior.c: Use DEFINE_REGISTRY. (struct inferior_data, struct inferior_data_registration, struct inferior_data_registry, inferior_data_registry) (register_inferior_data_with_cleanup, register_inferior_data) (inferior_alloc_data, inferior_free_data clear_inferior_data) (set_inferior_data, inferior_data): Remove. * auxv.c (_initialize_auxv): Update. * ada-lang.c (_initialize_ada_language): Update. * breakpoint.c (_initialize_breakpoint): Update. * i386-nat.c (i386_use_watchpoints): Update.
2012-08-02gdb/Yao Qi1-1/+1
* dwarf2loc.c (entry_values_debug): Add 'unsigned'. (_initialize_dwarf2loc): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * dwarf2loc.h: Update the declaration of 'entry_values_debug'. * dwarf2read.c (dwarf2_die_debug): Add 'unsigned'. (_initialize_dwarf2_read): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * darwin-nat.c (dwarwin_debug_flag): Add 'unsigned'. (_initialize_darwin_inferior): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * frame.c (frame_debug): Add 'unsigned'. (_intialize_frame): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * frame.h: Update the declaration of 'frame_debug'. * gdbtypes.c (overload_debug): Add 'unsigned'. (_initialize_gdbtypes): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * inferior.h: Update declaration of 'debug_infrun'. * infrun.c (debug_infrun): Add 'unsigned'. (_initialize_infrun): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * jit.c (jit_debug): Add 'unsigned'. (_initialize_jit): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * linux-nat.c (debug_linux_nat): Add 'unsigned'. (_initialize_linux_nat): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * linux-thread-db.c (libthread_db_debug): Add 'unsigned'. (_initialize_thread_db): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * machoread.c (mach_o_debug_level): Add 'unsigned'. (_initialize_machoread): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * mi/mi-cmd-var.c: Update the declaration of 'varobjdebug'. * microblaze-tdep.c (microblaze_debug_flag): Add 'unsigned'. (_initialize_microblaze_tdep): Call add_setshow_zuinteger_cmd intead of add_setshow_zinteger_cmd. * mips-tdep.c (mips_debug): Add 'unsigned'. (_initialize_mips_tdep): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * monitor.c (monitor_debug): Add 'unsigned'. (_initialize_remote_monitors): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * observer.c (observer_debug): Add 'unsigned'. (_initialize_observer): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * parse.c (expressiondebug): Add 'unsigned'. (_initialize_parse): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * record.c (record_debug): Add 'unsigned'. (_initialize_record): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * record.h: Update the declaration of 'record_debug'. * stap-probe.c (stap_expression_debug): Add 'unsigned'. (_initialize_stap_probe): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * serial.c (global_serial_debug_p): Add 'unsigned'. (_initialize_serial): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * solib-dsbt.c (solib_dsbt_debug): Add 'unsigned'. (_initialize_dsbt_solib): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * solib-frv.c (solib_frv_debug): Add 'unsigned'. (_initialize_frv_solib): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * target.c (targetdebug): Add 'unsigned'. (initialize_targets): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * valops.c (overload_debug): Add 'unsigned'. * varobj.c (varobjdebug): Add 'unsigned'. (_initialize_varobj): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * xtensa-tdep.c (xtensa_debug_level): Add 'unsigned'. (_initialize_xtensa_tdep): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * arch-utils.h: Remove the declaration of 'gdbarch_debug'. * gdbarch.sh (gdbarch_debug): Add 'unsigned'. (extern void _initialize_gdbarch): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * gdbarch.c, gdbarch.h: Re-generated.
2012-06-13gdb/Jan Kratochvil1-0/+4
PR build/14003 * inferior.h (struct inferior_suspend_state): Comment out. (struct inferior): Comment out the field suspend. * infrun.c (struct infcall_suspend_state): Comment out the field inferior_suspend. (save_infcall_suspend_state, restore_infcall_suspend_state): Comment out its assignment.
2012-06-06gdb/Thomas Schwinge1-0/+2
* NEWS: Document the deprecation of SH's 'regs' command. * inferior.h (all_registers_info): Add function declaration. * sh-tdep.c (sh_show_regs): Remove variable. (sh_generic_show_regs, sh3_show_regs, sh2e_show_regs, sh2a_show_regs) (sh2a_nofpu_show_regs, sh3e_show_regs, sh3_dsp_show_regs) (sh4_show_regs, sh4_nofpu_show_regs, sh_dsp_show_regs) (sh_show_regs_command): Remove functions. (sh_gdbarch_init): Don't set sh_show_regs. (_initialize_sh_tdep): Make the 'regs' command an deprecated alias to 'info all-registers'. * sh64-tdep.c (sh64_show_media_regs, sh64_show_compact_regs) (sh64_show_regs): Remove functions. * sh64-tdep.h (sh64_show_regs): Remove function declaration. gdb/doc/ * gdb.texinfo: Document the deprecation of SH's 'regs' command.
2012-05-24gdb/Pedro Alves1-4/+4
2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace target_signal with gdb_signal throughout. gdb/gdbserver/ 2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace target_signal with gdb_signal throughout. include/gdb/ 2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace target_signal with gdb_signal throughout. sim/common/ 2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace target_signal with gdb_signal throughout.
2012-05-16 gdb/Maciej W. Rozycki1-1/+1
* breakpoint.h (bp_location): Add related_address member. * inferior.h (get_return_value): Take a pointer to struct value instead of struct type for the function requested. * value.h (using_struct_return): Likewise. * gdbarch.sh (return_value): Take a pointer to struct value instead of struct type for the function requested. * breakpoint.c (set_breakpoint_location_function): Initialize related_address for bp_gnu_ifunc_resolver breakpoints. * elfread.c (elf_gnu_ifunc_resolver_return_stop): Pass the requested function's address to gdbarch_return_value. * eval.c (evaluate_subexp_standard): Pass the requested function's address to using_struct_return. * infcall.c (call_function_by_hand): Pass the requested function's address to using_struct_return and gdbarch_return_value. * infcmd.c (get_return_value): Take a pointer to struct value instead of struct type for the function requested. (print_return_value): Update accordingly. (finish_command_continuation): Likewise. * stack.c (return_command): Pass the requested function's address to using_struct_return and gdbarch_return_value. * value.c (using_struct_return): Take a pointer to struct value instead of struct type for the function requested. Pass the requested function's address to gdbarch_return_value. * python/py-finishbreakpoint.c (finish_breakpoint_object): New function_value member, replacing function_type. (bpfinishpy_dealloc): Update accordingly. (bpfinishpy_pre_stop_hook): Likewise. (bpfinishpy_init): Likewise. Record the requested function's address. * mips-tdep.c (mips_fval_reg): New enum. (mips_o32_push_dummy_call): For MIPS16 FP doubles do not swap words put in GP registers. (mips_o64_push_dummy_call): Update a comment. (mips_o32_return_value): Take a pointer to struct value instead of struct type for the function requested and use it to check if using the MIPS16 calling convention. Return the designated general purpose registers for floating-point values returned in MIPS16 mode. (mips_o64_return_value): Likewise. * ppc-tdep.h (ppc_sysv_abi_return_value): Update prototype. (ppc_sysv_abi_broken_return_value): Likewise. (ppc64_sysv_abi_return_value): Likewise. * alpha-tdep.c (alpha_return_value): Take a pointer to struct value instead of struct type for the function requested. * amd64-tdep.c (amd64_return_value): Likewise. * amd64-windows-tdep.c (amd64_windows_return_value): Likewise. * arm-tdep.c (arm_return_value): Likewise. * avr-tdep.c (avr_return_value): Likewise. * bfin-tdep.c (bfin_return_value): Likewise. * cris-tdep.c (cris_return_value): Likewise. * frv-tdep.c (frv_return_value): Likewise. * h8300-tdep.c (h8300_return_value): Likewise. (h8300h_return_value): Likewise. * hppa-tdep.c (hppa32_return_value): Likewise. (hppa64_return_value): Likewise. * i386-tdep.c (i386_return_value): Likewise. * ia64-tdep.c (ia64_return_value): Likewise. * iq2000-tdep.c (iq2000_return_value): Likewise. * lm32-tdep.c (lm32_return_value): Likewise. * m32c-tdep.c (m32c_return_value): Likewise. * m32r-tdep.c (m32r_return_value): Likewise. * m68hc11-tdep.c (m68hc11_return_value): Likewise. * m68k-tdep.c (m68k_return_value): Likewise. (m68k_svr4_return_value): Likewise. * m88k-tdep.c (m88k_return_value): Likewise. * mep-tdep.c (mep_return_value): Likewise. * microblaze-tdep.c (microblaze_return_value): Likewise. * mn10300-tdep.c (mn10300_return_value): Likewise. * moxie-tdep.c (moxie_return_value): Likewise. * mt-tdep.c (mt_return_value): Likewise. * ppc-linux-tdep.c (ppc_linux_return_value): Likewise. * ppc-sysv-tdep.c (ppc_sysv_abi_return_value): Likewise. (ppc_sysv_abi_broken_return_value): Likewise. (ppc64_sysv_abi_return_value): Likewise. * ppcnbsd-tdep.c (ppcnbsd_return_value): Likewise. * rl78-tdep.c (rl78_return_value): Likewise. * rs6000-aix-tdep.c (rs6000_return_value): Likewise. * rx-tdep.c (rx_return_value): Likewise. * s390-tdep.c (s390_return_value): Likewise. * score-tdep.c (score_return_value): Likewise. * sh-tdep.c (sh_return_value_nofpu): Likewise. (sh_return_value_fpu): Likewise. * sh64-tdep.c (sh64_return_value): Likewise. * sparc-tdep.c (sparc32_return_value): Likewise. * sparc64-tdep.c (sparc64_return_value): Likewise. * spu-tdep.c (spu_return_value): Likewise. * tic6x-tdep.c (tic6x_return_value): Likewise. * v850-tdep.c (v850_return_value): Likewise. * vax-tdep.c (vax_return_value): Likewise. * xstormy16-tdep.c (xstormy16_return_value): Likewise. * xtensa-tdep.c (xtensa_return_value): Likewise. * gdbarch.c: Regenerate. * gdbarch.h: Regenerate. gdb/testsuite/ * gdb.base/return-nodebug.exp: Also test float and double types.
2012-05-09Remove AT_SYMBOLJoel Brobecker1-1/+0
Now that this method is no longer used by any architecture, we can remove its support. gdb/ChangeLog: * infcall.c (call_function_by_hand): Remove AT_SYMBOL handling. * inferior.h (AT_SYMBOL): Delete.
2012-03-13gdb:Yao Qi1-14/+0
* inferior.h (struct inferior): Remove fields any_syscall_count, syscalls_counts and total_syscalls_count. Move them to new struct catch_syscall_inferior_data in breakpoint.c. * breakpoint.c: Call DEF_VEC_I(int). (struct catch_syscall_inferior_data): New. (get_catch_syscall_inferior_data): New. (catch_syscall_inferior_data_cleanup): New. (insert_catch_syscall): Update to access data in struct catch_syscall_inferior_data. (insert_catch_syscall): Likewise. (remove_catch_syscall): Likewise. (remove_catch_syscall): Likewise. (is_syscall_catchpoint_enabled): Likewise. (add_catch_command): Likewise. (_initialize_breakpoint): Register cleanup. * breakpoint.h: Removed DEF_VEC_I(int). * dwarf2loc.c: Call DEF_VEC_I(int). * mi/mi-main.c: Likewise.
2012-03-072012-03-07 Pedro Alves <palves@redhat.com>Pedro Alves1-0/+2
gdb/doc/ * gdb.texinfo (General Query Packets): Document new QProgramSignals packet. * gdb.texinfo (Remote configuration): Mention "program-signals-packet". gdb/gdbserver/ * linux-low.c (get_detach_signal): New. (linux_detach_one_lwp): Get rid of a pending SIGSTOP with SIGCONT. Pass on pending signals to PTRACE_DETACH. Check the result of the ptrace call. * server.c (program_signals, program_signals_p): New. (handle_general_set): Handle QProgramSignals. * server.h (program_signals, program_signals_p): Declare. gdb/ * NEWS: Mention QProgramSignals. * inferior.h (update_signals_program_target): Declare. * infrun.c: (update_signals_program_target): New. (handle_command): Update the target of the new program signals array changes. * remote.c (PACKET_QProgramSignals): New enum. (last_program_signals_packet): New global. (remote_program_signals): New. (remote_start_remote): Update the target with the program signals list. (remote_protocol_features): Add entry for QPassSignals. (remote_open_1): Free anc clear last_program_signals_packet. (init_remote_ops): Install remote_program_signals. * target.c (update_current_target): Adjust. (target_program_signals): New. * target.h (struct target_ops) <to_program_signals>: New field. (target_program_signals): Declare.
2012-03-012012-03-01 Pedro Alves <palves@redhat.com>Pedro Alves1-0/+10
* common/signals.c (default_target_signal_to_host) (default_target_signal_from_host): Move ... * arch-utils.c: ... here. * arch-utils.h (default_target_signal_to_host) (default_target_signal_from_host): Declare. * common/signals.c (target_signal_from_command): Move ... * infrun.c: ... here. * inferior.h (target_signal_from_command): Declare. * target.h (target_signal_from_command) (default_target_signal_from_host, default_target_signal_to_host): Delete declarations. * common/signals.c (_initialize_signals): Delete.
2012-02-16 * symfile.c (symbol_file_add_main_1): Use inferior'sTom Tromey1-0/+5
symfile_flags. * solib.c (solib_read_symbols): Use inferior's symfile_flags. * linux-nat.c (linux_child_follow_fork): Set symfile_flags on inferior. * infrun.c (handle_vfork_child_exec_or_exit): Set symfile_flags on inferior. (follow_exec): Use inferior's symfile_flags. * inferior.h (struct inferior) <symfile_flags>: New field.
2012-01-202012-01-20 Pedro Alves <palves@redhat.com>Ulrich Weigand1-0/+2
Ulrich Weigand <ulrich.weigand@linaro.org> * inferior.h (struct inferior): Add fake_pid_p. * inferior.c (exit_inferior_1): Clear fake_pid_p. * remote.c (remote_start_remote): Set fake_pid_p if we have to use magic_null_ptid since the remote side doesn't provide a real PID.
2012-01-04Get rid of corefile.c:close_exec_fileJoel Brobecker1-2/+0
The body of this function has been commented out since Jul 1999, and thus seems unnecessary. While at it, remove some commented out code that seems to be related to the function being deleted. gdb/ChangeLog: * corefile.c (close_exec_file): Delete. (reopen_exec_file): Remove commented out code that seems related to close_exec_file, which is being deleted here. * inferior.h (close_exec_file): Delete. * fork-child.c (fork_inferior): Remove call to fork_inferior.
2012-01-04Copyright year update in most files of the GDB Project.Joel Brobecker1-3/+2
gdb/ChangeLog: Copyright year update in most files of the GDB Project.
2011-12-23 Introduce gdb.FinishBreakpoint in PythonKevin Pouget1-0/+3
* Makefile.in (SUBDIR_PYTHON_OBS): Add py-finishbreakpoint.o. (SUBDIR_PYTHON_SRCS): Add python/py-finishbreakpoint.c. Add build rule for this file. * infcmd.c (print_return_value): Split to create get_return_value. (get_return_value): New function based on print_return_value. Handle case where stop_registers are not set. * inferior.h (get_return_value): New prototype. * python/py-breakpoint.c (bppy_pending_object): Make non-static. (gdbpy_breakpoint_created): Set is_py_finish_bp is necessary. (struct breakpoint_object): Move to python-internal.h (BPPY_REQUIRE_VALID): Likewise. (BPPY_SET_REQUIRE_VALID): Likewise. (gdbpy_breakpoint_created): Initialize is_finish_bp. (gdbpy_should_stop): Add pre/post hooks before/after calling stop method. * python/python-internal.h (breakpoint_object_type): Add as extern. (bppy_pending_object): Likewise. (typedef struct breakpoint_object) Removed. (struct breakpoint_object): Moved from py-breakpoint.c. Add field is_finish_bp. (BPPY_REQUIRE_VALID): Moved from py-breakpoint.c. (BPPY_SET_REQUIRE_VALID): Likewise. (frame_object_to_frame_info): New prototype. (gdbpy_initialize_finishbreakpoints): New prototype. (bpfinishpy_is_finish_bp): Likewise. (bpfinishpy_pre_stop_hook): Likewise. (bpfinishpy_post_stop_hook): Likewise. * python/py-finishbreakpoint.c: New file. * python/py-frame.c(frame_object_to_frame_info): Make non-static and accept PyObject instead of frame_object. (frapy_is_valid): Don't cast to frame_object. (frapy_name): Likewise. (frapy_type): Likewise. (frapy_unwind_stop_reason): Likewise. (frapy_pc): Likewise. (frapy_block): Likewise. (frapy_function): Likewise. (frapy_older): Likewise. (frapy_newer): Likewise. (frapy_find_sal): Likewise. (frapy_read_var): Likewise. (frapy_select): Likewise. * python/python.c (gdbpy_is_stopped_at_finish_bp): New noop function. (_initialize_python): Add gdbpy_initialize_finishbreakpoints. * python/python.h: Include breakpoint.h (gdbpy_is_stopped_at_finish_bp): New prototype. doc/ * gdb.texinfo (Finish Breakpoints in Python): New subsection. (Python API): Add menu entry for Finish Breakpoints. testsuite/ * Makefile.in (EXECUTABLES): Add py-finish-breakpoint and py-finish-breakpoint2 (MISCALLANEOUS): Add py-events-shlib.so and py-events-shlib-nodebug.so * gdb.python/py-breakpoint.exp (mult_line): Define and use variable instead of line number. * gdb.python/py-finish-breakpoint.c: New file. * gdb.python/py-finish-breakpoint.exp: New file. * gdb.python/py-finish-breakpoint.py: New file. * gdb.python/py-finish-breakpoint2.cc: New file. * gdb.python/py-finish-breakpoint2.exp: New file. * gdb.python/py-finish-breakpoint2.py: New file.
2011-10-07 * inferior.h (disable_randomization): Declare.Ulrich Weigand1-0/+4
* infrun.c (disable_randomization): New global variable. (show_disable_randomization): New function. (set_disable_randomization): Likewise. (_initialize_infrun): Install set/show disable-randomization commands. * linux-nat.c (disable_randomization): Remove. (show_disable_randomization): Likewise. (set_disable_randomization): Likewise. (_initialize_linux_nat): No longer install set/show disable-randomization commands here. (linux_nat_supports_disable_randomization): New function. (linux_nat_add_target): Install it. * remote.c (PACKET_QDisableRandomization): New enum value. (remote_protocol_packets): Support QDisableRandomization. (_initialize_remote): Likewise. (remote_supports_disable_randomization): New function. (init_remote_ops): Install it. (extended_remote_supports_disable_randomization): New function. (init_extended_remote_ops): Install it. (extended_remote_disable_randomization): New function. (extended_remote_create_inferior_1): Call it. * target.h (struct target_ops): Add to_supports_disable_randomization. (target_supports_disable_randomization): Add prototype. * target.c (target_supports_disable_randomization): New function. (find_default_supports_disable_randomization): Likewise. (init_dummy_target): Install it. doc/ * gdb.texinfo (Starting your Program): "set disable-randomization" is no longer Linux-specific. (Remote Configuration): Document "set remote disable-randomization-packet". (General Query Packets): Document "QDisableRandomization" packet and add it to "qSupported" list. gdbserver/ * configure.ac: Check support for personality routine. * configure: Regenerate. * config.in: Likewise. * linux-low.c: Include <sys/personality.h>. Define ADDR_NO_RANDOMIZE if necessary. (linux_create_inferior): Disable address space randomization when forking inferior, if requested. (linux_supports_disable_randomization): New function. (linux_target_ops): Install it. * server.h (disable_randomization): Declare. * server.c (disable_randomization): New global variable. (handle_general_set): Handle QDisableRandomization. (handle_query): Likewise for qSupported. (main): Support --disable-randomization and --no-disable-randomization command line arguments. * target.h (struct target_ops): Add supports_disable_randomization. (target_supports_disable_randomization): New macro.
2011-09-222011-09-22 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-1/+3
* fork-child.c (fork_inferior): Add exec_fun parameter. Call exec_fun or execvp. * inferior.h: Adjust prototype. * gnu-nat.c (gnu_create_inferior): Adjust fork_inferior call. * inf-ttrace.c (inf_ttrace_create_inferior): Ditto. * inf-ptrace.c (inf_ptrace_create_inferior): Ditto. * procfs.c (procfs_create_inferior): Ditto. * darwin-nat.c (darwin_execvp): New function. (darwin_create_inferior): Use it.
2011-09-132011-09-13 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-0/+5
* inferior.h (ALL_INFERIORS): New. * linux-thread-db.c (thread_db_find_new_threads_2): Remove check for a stopped thread. (thread_db_find_new_threads): Look for threads in all inferiors.
2011-07-212011-07-22 Kwok Cheung Yeung <kcy@codesourcery.com>Kwok Yeung1-30/+2
gdb/ * defs.h: Add guard against inclusion in gdbserver. (struct ptid, ptid_t): Move to common/ptid.h. (xfree, xzalloc, xasprintf, xvasprintf, xstrprintf, xstrvprintf, xsnprintf, internal_error): Move to common/common-utils.h. (nomem): Delete. * gdb_assert.h: Move into common/ sub-directory. * gdb_locale.h: Ditto. * gdb_dirent.h: Ditto. * inferior.h (minus_one_ptid, null_ptid, ptid_build, pid_to_ptid, ptid_get_pid, ptid_get_lwp, ptid_get_tid, ptid_equal, ptid_is_pid): Move into common/ptid.h. * xml-support.c (xml_escape_text): Move into common/xml-utils.c. (gdb_xml_create_parser_and_cleanup_1, xml_fetch_context_from_file): Change nomem to malloc_failure. * xml-support.h (xml_escape_text): Move into common/xml-utils.h. * utils.c (nomem): Rename to malloc_failure. (xmalloc, xzalloc, xrealloc, xcalloc, xfree, xstrprintf, xasprintf, xvasprintf, xstrvprintf, xsnprintf): Move to common/common-utils.c. (gdb_buildargv): Change nomem to malloc_failure. * infrun.c (null_ptid, minus_one_ptid, ptid_build, pid_to_ptid, ptid_get_pid, ptid_get_lwp, ptid_get_tid, ptid_equal, ptid_is_pid): Move into common/ptid.c. (initialize_infrun): Delete initialization of null_ptid and minus_one_ptid. * linux-nat.c (linux_nat_xfer_osdata): Defer to linux_common_xfer_osdata. * Makefile.in (SFILES): Add common/common-utils.c, common/xml-utils.c, common/ptid.c and common/buffer.c. (HFILES_NO_SRCDIR): Add common/common-utils.h, common/xml-utils.h, common/ptid.h, common/buffer.h and common/linux-osdata.h. (COMMON_OBS): Add xml-utils.o, common-utils.o, buffer.o and ptid.o. (common-utils.o, xml-utils.o, ptid.o, buffer.o, linux-osdata.o): New rules. * common/gdb_assert.h: New. * common/gdb_dirent.h: New. * common/gdb_locale.h: New. * common/buffer.c: New. * common/buffer.h: New. * common/ptid.c: New. * common/ptid.h: New. * common/xml-utils.c: New. * common/xml-utils.h: New. * common/common-utils.c: New. * common/common-utils.h: New. * common/linux-osdata.c: New. * common/linux-osdata.h: New. * config/alpha/alpha-linux.mh (NATDEPFILES): Add linux-osdata.o. * config/arm/linux.mh (NATDEPFILES): Ditto. * config/i386/linux.mh (NATDEPFILES): Ditto. * config/i386/linux64.mh (NATDEPFILES): Ditto. * config/ia64/linux.mh (NATDEPFILES): Ditto. * config/m32r/linux.mh (NATDEPFILES): Ditto. * config/m68k/linux.mh (NATDEPFILES): Ditto. * config/mips/linux.mh (NATDEPFILES): Ditto. * config/pa/linux.mh (NATDEPFILES): Ditto. * config/powerpc/linux.mh (NATDEPFILES): Ditto. * config/powerpc/ppc64-linux.mh (NATDEPFILES): Ditto. * config/s390/s390.mh (NATDEPFILES): Ditto. * config/sparc/linux.mh (NATDEPFILES): Ditto. * config/sparc/linux64.mh (NATDEPFILES): Ditto. * config/xtensa/linux.mh (NATDEPFILES): Ditto. gdbserver/ * linux-low.c (compare_ints, unique, list_threads, show_process, linux_core_of_thread): Delete. (linux_target_ops): Change linux_core_of_thread to linux_common_core_of_thread. (linux_qxfer_osdata): Defer to linux_common_xfer_osdata. * utils.c (malloc_failure): Change type of argument. (xmalloc, xrealloc, xcalloc, xsnprintf): Delete. * Makefile.in (SFILES): Add common/common-utils.c, common/xml-utils.c, common/linux-osdata.c, common/ptid.c and common/buffer.c. (OBS): Add xml-utils.o, common-utils.o, ptid.o and buffer.o. (IPA_OBJS): Add common-utils-ipa.o. (ptid_h, linux_osdata_h): New macros. (server_h): Add common/common-utils.h, common/xml-utils.h, common/buffer.h, common/gdb_assert.h, common/gdb_locale.h and common/ptid.h. (common-utils-ipa.o, common-utils.o, xml-utils.o, linux-osdata.o, ptid.o, buffer.o): New rules. (linux-low.o): Add common/linux-osdata.h as a dependency. * configure.srv (srv_tgtobj): Add linux-osdata.o to Linux targets. * configure.ac: Add AC_HEADER_DIRENT check. * config.in: Regenerate. * configure: Regenerate. * remote-utils.c (xml_escape_text): Delete. (buffer_grow, buffer_free, buffer_init, buffer_finish, buffer_xml_printf): Move to common/buffer.c. * server.c (main): Remove call to initialize_inferiors. * server.h (struct ptid, ptid_t, minus_one_ptid, null_ptid, ptid_build, pid_to_ptid, ptid_get_pid, ptid_get_lwp, ptid_get_tid, ptid_equal, ptid_is_pid, initialize_inferiors, xml_escape_text, internal_error, gdb_assert, gdb_assert_fail): Delete. (struct buffer, buffer_grow, buffer_free, buffer_init, buffer_finish, buffer_xml_printf, buffer_grow_str, buffer_grow_str0): Move to common/buffer.h. * inferiors.c (null_ptid, minus_one_ptid, ptid_build, pid_to_ptid, ptid_get_pid, ptid_get_lwp, ptid_get_tid, ptid_equal, ptid_is_pid, initialize_inferiors): Delete.
2011-06-03gdbTom Tromey1-0/+5
* python/py-inferior.c (python_inferior_exit): Use inferior's exit code fields. * python/py-exitedevent.c (create_exited_event_object): Change type of 'exit_code'. Optionally add exit_code attribute. (emit_exited_event): Change type of 'exit_code'. * python/py-event.h (emit_exited_event): Update. * mi/mi-interp.c (mi_inferior_exit): Print exit code. * infrun.c (handle_inferior_event): Set exit code fields on inferior. * inferior.h (struct inferior) <has_exit_code, exit_code>: New fields. * inferior.c (exit_inferior_1): Initialize new fields. gdb/doc * gdb.texinfo (GDB/MI Async Records): Document 'exit-code' field. (Events In Python): Note that exit_code is optional.
2011-05-262011-05-26 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-2/+1
gdb/ * inferior.h (enum exec_direction_kind): Delete EXEC_ERROR. * infrun.c (show_exec_direction_func): Don't handle EXEC_ERROR. Internal error on invalid values. * reverse.c: Don't handle EXEC_ERROR. * mi/mi-main.c: Don't handle EXEC_ERROR.
2011-05-262011-05-26 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-1/+4
gdb/ * record.c: Include event-loop.h, inf-loop.h. (record_beneath_to_async): New global. (tmp_to_async): New global. (record_async_inferior_event_token): New global. (record_open_1): Don't error out if async is enabled. (record_open): Handle to_async. Create an async event source in the event loop. (record_close): Delete the async event source. (record_resumed): New global. (record_execution_dir): New global. (record_resume, record_core_resume): Set them. Register the target on the event loop. (record_wait): Rename to ... (record_wait_1): ... this. Add more debug output. Handle TARGET_WNOHANG, and the target beneath returning TARGET_WAITKIND_IGNORE. (record_wait): Reimplement on top of record_wait_1. (record_async_mask_value): New global. (record_async, record_async_mask, record_can_async_p) (record_is_async_p, record_execution_direction): New functions. (init_record_ops, init_record_core_ops): Install new methods. * infrun.c (fetch_inferior_event): Temporarily switch the global execution direction to the direction the target was going. (execution_direction): Change type to int. * target.c (default_execution_direction): New function. (update_current_target): Inherit and de_fault to_execution_direction. * target.h (struct target_ops) <to_execution_direction>: New field. (target_execution_direction): New macro. * inferior.h (execution_direction): Change type to int.
2011-05-262011-05-26 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-0/+4
gdb/ * infcmd.c (finish_backward): Set a step-resume breakpoint at the function's entry point instead of a manually managed momentary breakpoint, and only ever issue one proceed call. * infrun.c (handle_inferior_event) <BPSTAT_WHAT_STEP_RESUME>: If doing a reverse-finish, switch to stepi mode, to do another step. (insert_step_resume_breakpoint_at_sal): Make public. (normal_stop): No need to save function value return registers if going reverse. * inferior.h (insert_step_resume_breakpoint_at_sal): Declare. gdb/testsuite/ * gdb.reverse/finish-reverse-bkpt.exp: New test.
2011-05-202011-05-20 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-0/+2
gdb/ * infcmd.c: Include "inf-loop.h". (step_once): When stepping into an inline subroutine, pretend the target has run. If the target can async, switch the inferior event loop to INF_EXEC_COMPLETE. * inferior.h (user_visible_resume_ptid): Declare. * infrun.c (user_visible_resume_ptid): New function, factored out from `resume'. (resume): Use it. * mi/mi-main.c (mi_execute_async_cli_command): Remove assertion that the current thread is running. Merge async and sync branches.
2011-05-092011-05-09 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-1/+1
* inferior.h (wait_for_inferior): Remove `thread_exec_as_sigtrap' parameter. * infrun.c (proceed, start_remote): Adjust. (wait_for_inferior): Remove `thread_exec_as_sigtrap' parameter, and adjust to not handle it. * solib-irix.c (irix_solib_create_inferior_hook): Adjust. * solib-osf.c (osf_solib_create_inferior_hook): Adjust. * solib-sunos.c (sunos_solib_create_inferior_hook): Adjust. * solib-svr4.c (svr4_solib_create_inferior_hook): Adjust. * windows-nat.c (do_initial_windows_stuff): Adjust. * infcmd.c (attach_command): Adjust. (notice_new_inferior): Adjust.
2011-03-15 Fix formatting of function declarations returning a pointer inPierre Muller1-1/+1
previous commit. * varobj.c (varobj_add_child): Ditto. * hppa-tdep.h (hppa_init_objfile_priv_data): Ditto. * inferior.h (get_displaced_step_closure_by_addr): Ditto.
2011-03-14 Fix ARI warning about function names in first column.Pierre Muller1-2/+1
Put prototype declaration on same line as return type. * objc-exp.y: Ditto. * p-exp.y: Ditto. * python/py-stopevent.h: Ditto. For long function names, split parameters to allow function name on same line as return type. * solib-pa64.c: Ditto. * varobj.c: Ditto. * varobj.h: Ditto. For long function declaration, use single line. * hppa-tdep.h: Ditto. * inferior.h: Ditto.
2011-02-262011-02-25 Michael Snyder <msnyder@vmware.com>Michael Snyder1-1/+1
* arm-tdep.c: Fix typos in comments. * bsd-uthread.c: Ditto. * completer.c: Ditto. * corelow.c: Ditto. * cp-namespace.c: Ditto. * cp-support.c: Ditto. * cris-tdep.c: Ditto. * dbxread.c: Ditto. * dwarf2read.c: Ditto. * frame.h: Ditto. * gdbtypes.h: Ditto. * inferior.h: Ditto. * mdebugread.c: Ditto. * mips-tdep.c: Ditto. * ppc-linux-nat.c: Ditto. * ppc-linux-tdep.c: Ditto. * printcmd.c: Ditto. * sol-thread.c: Ditto. * solib-frv.c: Ditto. * solist.h: Ditto. * sparc64-tdep.c: Ditto. * spu-tdep.c: Ditto. * stabsread.c: Ditto. * symfile.c: Ditto. * valops.c: Ditto. * varobj.c: Ditto. * vax-nat.c: Ditto. * python/py-block.c: Ditto. * python/py-symbol.c: Ditto. * python/py-symtab.c: Ditto. * python/py-value.c: Ditto. * tui/tui-win.c: Ditto.