mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-03-01 13:26:47 +08:00
gdb/
Fix crash during stepping on ppc32. * ppc-linux-tdep.c (powerpc_linux_in_dynsym_resolve_code): Test NULL SYM. gdb/testsuite/ Fix crash during stepping on ppc32. * gdb.base/step-symless.c: New file. * gdb.base/step-symless.exp: New file.
This commit is contained in:
parent
39dc86500a
commit
2e24f4aab7
@ -1,3 +1,9 @@
|
||||
2012-10-06 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Fix crash during stepping on ppc32.
|
||||
* ppc-linux-tdep.c (powerpc_linux_in_dynsym_resolve_code): Test NULL
|
||||
SYM.
|
||||
|
||||
2012-10-03 Doug Evans <dje@google.com>
|
||||
|
||||
PR symtab/14601
|
||||
|
@ -648,8 +648,9 @@ powerpc_linux_in_dynsym_resolve_code (CORE_ADDR pc)
|
||||
|
||||
/* Check if we are in the resolver. */
|
||||
sym = lookup_minimal_symbol_by_pc (pc);
|
||||
if ((strcmp (SYMBOL_LINKAGE_NAME (sym), "__glink") == 0)
|
||||
|| (strcmp (SYMBOL_LINKAGE_NAME (sym), "__glink_PLTresolve") == 0))
|
||||
if (sym != NULL
|
||||
&& (strcmp (SYMBOL_LINKAGE_NAME (sym), "__glink") == 0
|
||||
|| strcmp (SYMBOL_LINKAGE_NAME (sym), "__glink_PLTresolve") == 0))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
|
@ -1,3 +1,9 @@
|
||||
2012-10-06 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Fix crash during stepping on ppc32.
|
||||
* gdb.base/step-symless.c: New file.
|
||||
* gdb.base/step-symless.exp: New file.
|
||||
|
||||
2012-10-03 Doug Evans <dje@google.com>
|
||||
|
||||
PR symtab/14601
|
||||
|
38
gdb/testsuite/gdb.base/step-symless.c
Normal file
38
gdb/testsuite/gdb.base/step-symless.c
Normal file
@ -0,0 +1,38 @@
|
||||
/* This testcase is part of GDB, the GNU debugger.
|
||||
|
||||
Copyright 2012 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/>. */
|
||||
|
||||
static volatile int v;
|
||||
|
||||
static void
|
||||
symful (void)
|
||||
{
|
||||
v++;
|
||||
}
|
||||
|
||||
static void
|
||||
symless (void)
|
||||
{
|
||||
v++;
|
||||
}
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
symless ();
|
||||
symful ();
|
||||
return 0;
|
||||
}
|
41
gdb/testsuite/gdb.base/step-symless.exp
Normal file
41
gdb/testsuite/gdb.base/step-symless.exp
Normal file
@ -0,0 +1,41 @@
|
||||
# Copyright (C) 2012 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/>.
|
||||
|
||||
standard_testfile
|
||||
if {[build_executable ${testfile}.exp ${testfile} ${srcfile} {nodebug}] == -1} {
|
||||
return -1
|
||||
}
|
||||
|
||||
# We need those symbols global to access them from the .S file.
|
||||
set test "strip stub symbols"
|
||||
set objcopy_program [transform objcopy]
|
||||
set result [catch "exec $objcopy_program -N symless ${binfile}" output]
|
||||
verbose "result is $result"
|
||||
verbose "output is $output"
|
||||
if {$result != 0} {
|
||||
fail $test
|
||||
return
|
||||
}
|
||||
pass $test
|
||||
|
||||
clean_restart $testfile
|
||||
|
||||
if ![runto_main] {
|
||||
return -1
|
||||
}
|
||||
|
||||
gdb_breakpoint symful
|
||||
|
||||
gdb_test "step" "Single stepping until exit.*no line number information.*\r\nBreakpoint \[^\r\n\]* in \\.?symful \\(\\)"
|
Loading…
Reference in New Issue
Block a user