Use 2-byte instead of 4-byte NOP on S390 in 'bp-permanent' test case
The bp-permanent test case assumes that a NOP is exactly as long as a software breakpoint. This is not the case for the S390 "nop" instruction, which is 4 bytes long, while a software breakpoint is just 2 bytes long. The "nopr" instruction has the right size and can be used instead. Without this patch the test case fails on S390 when trying to continue after SIGTRAP on the permanent breakpoint: ... Continuing. Program received signal SIGILL, Illegal instruction. test () at /home/arnez/src/binutils-gdb/gdb/testsuite/gdb.base/bp-permanent.c:40 40 NOP; /* after permanent bp */ (gdb) FAIL: gdb.base/bp-permanent.exp: always_inserted=off, sw_watchpoint=0: basics: stop at permanent breakpoint With this patch the test case succeeds without any FAILs. gdb/testsuite/ChangeLog: * gdb.base/bp-permanent.c (NOP): Define as 2-byte instead of 4-byte instruction on S390.
This commit is contained in:
parent
2b0f535a44
commit
0d7b254902
|
@ -1,3 +1,8 @@
|
|||
2014-11-19 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
||||
|
||||
* gdb.base/bp-permanent.c (NOP): Define as 2-byte instead of
|
||||
4-byte instruction on S390.
|
||||
|
||||
2014-11-19 Joel Brobecker <brobecker@adacore.com>
|
||||
|
||||
* gdb.ada/arr_arr: New testcase.
|
||||
|
|
|
@ -21,7 +21,14 @@
|
|||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
/* NOP instruction: must have the same size as the breakpoint
|
||||
instruction. */
|
||||
|
||||
#if defined(__s390__) || defined(__s390x__)
|
||||
#define NOP asm("nopr 0")
|
||||
#else
|
||||
#define NOP asm("nop")
|
||||
#endif
|
||||
|
||||
/* Buffer holding the breakpoint instruction. */
|
||||
unsigned char buffer[16];
|
||||
|
|
Loading…
Reference in New Issue