From 831517df13fe99c89f073632b70431510bee65ba Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Fri, 6 Jun 2014 11:05:05 +0800 Subject: [PATCH] Skip hbreak-unmapped.exp if memory at address 0 is readable hbreak-unmapped.exp assumes that memory at address 0 is unmapped or unreadable, but on bare metal or uclinux targets, memory at address 0 is readable. For example, on arm-none-eabi, the vector table base address is 0x0. hbreak *0^M Hardware assisted breakpoint 3 at 0x0: file /scratch/yqi/arm-none-eabi-lite/obj/cs3-2014.11-999999-arm-none-eabi-i686-pc-linux-gnu/generated/arm-vector.S, line 25.^M (gdb) FAIL: gdb.base/hbreak-unmapped.exp: hbreak *0 info break^M Num Type Disp Enb Address What^M 3 hw breakpoint keep y 0x00000000 /scratch/yqi/arm-none-eabi-lite/obj/cs3-2014.11-999999-arm-none-eabi-i686-pc-linux-gnu/generated/arm-vector.S:25^M (gdb) FAIL: gdb.base/hbreak-unmapped.exp: info break shows hw breakpoint delete $bpnum This patch is to check whether address 0 is readable via command 'x 0'. If it is, skip the test. gdb/testsuite: 2014-06-06 Yao Qi * gdb.base/hbreak-unmapped.exp: Read memory at address 0. If readable, skip the test. --- gdb/testsuite/ChangeLog | 5 +++++ gdb/testsuite/gdb.base/hbreak-unmapped.exp | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 51686d1..bc81a07 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2014-06-06 Yao Qi + * gdb.base/hbreak-unmapped.exp: Read memory at address 0. If + readable, skip the test. + +2014-06-06 Yao Qi + * gdb.threads/staticthreads.c (thread_function): Move the line setting breakpoint on forward. * gdb.threads/staticthreads.exp: Update comments. diff --git a/gdb/testsuite/gdb.base/hbreak-unmapped.exp b/gdb/testsuite/gdb.base/hbreak-unmapped.exp index 5cb655c..95668f2 100644 --- a/gdb/testsuite/gdb.base/hbreak-unmapped.exp +++ b/gdb/testsuite/gdb.base/hbreak-unmapped.exp @@ -28,6 +28,16 @@ if ![runto_main] { return -1 } +# If we can read the memory at address 0, skip the test. +gdb_test_multiple "x 0" "memory at address 0" { + -re "0x0:.*Cannot access memory at address 0x0.*$gdb_prompt $" { } + -re "0x0:.*Error accessing memory address 0x0.*$gdb_prompt $" { } + -re ".*$gdb_prompt $" { + untested "Memory at address 0 is readable" + return + } +} + delete_breakpoints # Test whether the target supports hardware breakpoints at all. -- 2.7.4