* 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
|
@ -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>
|
2004-04-28 Mark Kettenis <kettenis@gnu.org>
|
||||||
|
|
||||||
* gdb.base/call-sc.exp: Remove patterns to KFAIL PR gdb/1624 on
|
* gdb.base/call-sc.exp: Remove patterns to KFAIL PR gdb/1624 on
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
void gdb1253 (void);
|
void gdb1253 (void);
|
||||||
void gdb1338 (void);
|
void gdb1338 (void);
|
||||||
|
void jump_at_beginning (void);
|
||||||
|
|
||||||
int
|
int
|
||||||
main (void)
|
main (void)
|
||||||
{
|
{
|
||||||
gdb1253 ();
|
gdb1253 ();
|
||||||
gdb1338 ();
|
gdb1338 ();
|
||||||
|
jump_at_beginning ();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,3 +37,19 @@ asm(".text\n"
|
||||||
" popl %esi\n"
|
" popl %esi\n"
|
||||||
" popl %edi\n"
|
" popl %edi\n"
|
||||||
" ret\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" \
|
gdb_test "info frame" \
|
||||||
".*Saved registers:.*ebx at.*esi at.*edi at.*eip at.*" \
|
".*Saved registers:.*ebx at.*esi at.*edi at.*eip at.*" \
|
||||||
"saved registers in gdb1338"
|
"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 New Issue