diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2010-04-04 22:12:04 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2010-04-04 22:12:04 +0000 |
commit | 91d6d46b0c1d3b5ae3602be139cb8780ded5b418 (patch) | |
tree | f8de34278c389851a69060b84d9c46c40a61591e | |
parent | ef9b9ef1ad140e93ebeec10320972a2c639d2e57 (diff) | |
download | gdb-91d6d46b0c1d3b5ae3602be139cb8780ded5b418.tar.gz |
gdb/
* infcmd.c (run_command_1): Call proceed with regcache_read_pc address.
* config/djgpp/fnchange.lst: Add translation for break-entry.exp.
gdb/testsuite/
* gdb.base/break-entry.exp: New.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/config/djgpp/fnchange.lst | 1 | ||||
-rw-r--r-- | gdb/infcmd.c | 5 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/break-entry.exp | 43 |
5 files changed, 56 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3db5070ee64..f79aa3fced8 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2010-04-04 Jan Kratochvil <jan.kratochvil@redhat.com> + * infcmd.c (run_command_1): Call proceed with regcache_read_pc address. + * config/djgpp/fnchange.lst: Add translation for break-entry.exp. + +2010-04-04 Jan Kratochvil <jan.kratochvil@redhat.com> + * breakpoint.c (bpstat_find_step_resume_breakpoint): Remove. * breakpoint.h (bpstat_find_step_resume_breakpoint): Remove. diff --git a/gdb/config/djgpp/fnchange.lst b/gdb/config/djgpp/fnchange.lst index 3982f1d0ab1..eb9e8351945 100644 --- a/gdb/config/djgpp/fnchange.lst +++ b/gdb/config/djgpp/fnchange.lst @@ -371,6 +371,7 @@ @V@/gdb/testsuite/gdb.arch/powerpc-prologue.exp @V@/gdb/testsuite/gdb.arch/ppc-prologue.exp @V@/gdb/testsuite/gdb.base/bitfields2.c @V@/gdb/testsuite/gdb.base/bitfiel2.c @V@/gdb/testsuite/gdb.base/bitfields2.exp @V@/gdb/testsuite/gdb.base/bitfiel2.exp +@V@/gdb/testsuite/gdb.base/break-entry.exp @V@/gdb/testsuite/gdb.base/brkentry.exp @V@/gdb/testsuite/gdb.base/coremaker2.c @V@/gdb/testsuite/gdb.base/core2maker.c @V@/gdb/testsuite/gdb.base/hashline1.exp @V@/gdb/testsuite/gdb.base/hash1line.exp @V@/gdb/testsuite/gdb.base/hashline2.exp @V@/gdb/testsuite/gdb.base/hash2line.exp diff --git a/gdb/infcmd.c b/gdb/infcmd.c index db2232d4668..a803bcbbb45 100644 --- a/gdb/infcmd.c +++ b/gdb/infcmd.c @@ -580,8 +580,9 @@ run_command_1 (char *args, int from_tty, int tbreak_at_main) has done its thing; now we are setting up the running program. */ post_create_inferior (¤t_target, 0); - /* Start the target running. */ - proceed ((CORE_ADDR) -1, TARGET_SIGNAL_0, 0); + /* Start the target running. Do not use -1 continuation as it would skip + breakpoint right at the entry point. */ + proceed (regcache_read_pc (get_current_regcache ()), TARGET_SIGNAL_0, 0); /* Since there was no error, there's no need to finish the thread states here. */ diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index aff549f05f9..27054c030e7 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2010-04-04 Jan Kratochvil <jan.kratochvil@redhat.com> + + * gdb.base/break-entry.exp: New. + 2010-04-02 Hui Zhu <teawater@gmail.com> Michael Snyder <msnyder@vmware.com> diff --git a/gdb/testsuite/gdb.base/break-entry.exp b/gdb/testsuite/gdb.base/break-entry.exp new file mode 100644 index 00000000000..d4b86a387cf --- /dev/null +++ b/gdb/testsuite/gdb.base/break-entry.exp @@ -0,0 +1,43 @@ +# Copyright (C) 2010 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Test inferior can stop at its very first instruction, usually "_start". +# Dynamic executables have first instruction in ld.so. + +set testfile break-entry +if { [prepare_for_testing ${testfile}.exp ${testfile} start.c {additional_flags=-static}] } { + return -1 +} + +set test "info files" +set entry "" +gdb_test_multiple $test $test { + -re "\r\n\[\t \]*Entry point:\[\t \]*(0x\[0-9a-f\]+)\r\n.*$gdb_prompt $" { + set entry $expect_out(1,string) + pass $test + } +} +if {$entry == ""} { + untested ${testfile}.exp + return +} + +if ![runto "*$entry"] { + return +} +gdb_test {p/x $pc} " = $entry" + +gdb_breakpoint "main" +gdb_continue_to_breakpoint "main" "main.*" |