* i386-prologue.exp: Add testcase for jump instruction as first
instruction of the real code. * i386-prologue.c (jump_at_beginning): New function.
This commit is contained in:
parent
711cc5cd07
commit
a8958849c4
3 changed files with 37 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2004-04-27 Jerome Guitton <guitton@gnat.com>
|
||||
|
||||
* i386-prologue.exp: Add testcase for jump instruction as first
|
||||
instruction of the real code.
|
||||
* i386-prologue.c (jump_at_beginning): New function.
|
||||
|
||||
2004-04-28 Mark Kettenis <kettenis@gnu.org>
|
||||
|
||||
* gdb.base/call-sc.exp: Remove patterns to KFAIL PR gdb/1624 on
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
void gdb1253 (void);
|
||||
void gdb1338 (void);
|
||||
void jump_at_beginning (void);
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
gdb1253 ();
|
||||
gdb1338 ();
|
||||
jump_at_beginning ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -35,3 +37,19 @@ asm(".text\n"
|
|||
" popl %esi\n"
|
||||
" popl %edi\n"
|
||||
" ret\n");
|
||||
|
||||
/* The purpose of this function is to verify that, during prologue
|
||||
skip, GDB does not follow a jump at the beginnning of the "real"
|
||||
code. */
|
||||
|
||||
asm(".text\n"
|
||||
" .align 8\n"
|
||||
"jump_at_beginning:\n"
|
||||
" pushl %ebp\n"
|
||||
" movl %esp,%ebp\n"
|
||||
" jmp .gdbjump\n"
|
||||
" nop\n"
|
||||
".gdbjump:\n"
|
||||
" movl %ebp,%esp\n"
|
||||
" popl %ebp\n"
|
||||
" ret\n");
|
||||
|
|
|
@ -76,3 +76,16 @@ gdb_test "backtrace 10" \
|
|||
gdb_test "info frame" \
|
||||
".*Saved registers:.*ebx at.*esi at.*edi at.*eip at.*" \
|
||||
"saved registers in gdb1338"
|
||||
|
||||
# Testcase jump_at_beginning.
|
||||
gdb_test_multiple "break jump_at_beginning" \
|
||||
"set breakpoint in jump_at_beginning" {
|
||||
-re "Breakpoint \[0-9\]* at ($hex).*$gdb_prompt $" {
|
||||
gdb_test "x/i $expect_out(1,string)" \
|
||||
".*<jump_at_beginning.*>:.*jmp.*" \
|
||||
"check jump_at_beginning prologue end"
|
||||
}
|
||||
default {
|
||||
fail "set breakpoint in jump_at_beginning"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue