This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 1/3] Add testcases for examine function
- From: Andrew Burgess <andrew dot burgess at embecosm dot com>
- To: Fei Jie <feij dot fnst at cn dot fujitsu dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Wed, 4 Nov 2015 21:37:41 +0000
- Subject: Re: [PATCH 1/3] Add testcases for examine function
- Authentication-results: sourceware.org; auth=none
- References: <1446620987-4140-1-git-send-email-feij dot fnst at cn dot fujitsu dot com> <1446620987-4140-2-git-send-email-feij dot fnst at cn dot fujitsu dot com>
* Fei Jie <feij.fnst@cn.fujitsu.com> [2015-11-04 15:09:45 +0800]:
> use examine to display the content of main function's address
> in different formats and examine address that can not be accessed
> ---
> gdb/testsuite/gdb.base/testexamine.exp | 42 ++++++++++++++++++++++++++++++++++
> 1 file changed, 42 insertions(+)
> create mode 100644 gdb/testsuite/gdb.base/testexamine.exp
>
> diff --git a/gdb/testsuite/gdb.base/testexamine.exp b/gdb/testsuite/gdb.base/testexamine.exp
> new file mode 100644
> index 0000000..16d916d
> --- /dev/null
> +++ b/gdb/testsuite/gdb.base/testexamine.exp
> @@ -0,0 +1,42 @@
> +if {[prepare_for_testing testprint.exp testprint display.c \
> + {debug nowarnings}]} {
> + untested testprint.exp
> + return -1
> +}
> +
> +if ![runto_main] then {
> + fail "Can not run to main."
> +}
> +
> +#Get main address
> +set main_addr ""
> +gdb_test_multiple "print/x &main" "getting main's address" {
> + -re "$decimal = \($hex\)\r\n$gdb_prompt $" {
> + set main_addr $expect_out(1,string)
> + }
> +}
> +
> +#Test x(examine)
> +gdb_test "x" \
> + "Argument required.*"
> +gdb_test "x/x $main_addr" \
> + ".*<main>.*0xe5894855"
These addresses are not going to be correct for all the different
targets that gdb supports. Or even a different version of GCC (or
whatever compiler) building the same target as you are.
Thanks,
Andrew
> +gdb_test "x/d $main_addr" \
> + ".*<main>.*-443987883"
> +gdb_test "x/u $main_addr" \
> + ".*<main>.*3850979413"
> +gdb_test "x/o $main_addr" \
> + ".*<main>.*034542244125"
> +gdb_test "x/t $main_addr" \
> + ".*<main>.*11100101100010010100100001010101"
> +gdb_test "x/a $main_addr" \
> + ".*<main>.*0xb8e5894855"
> +gdb_test "x/c $main_addr" \
> + ".*<main>.*85\ \'U\'"
> +gdb_test "x/f $main_addr" \
> + ".*<main>.*3.923498621684153e-312"
> +gdb_test "x 0x000000000000" \
> + "Cannot access memory at address 0x0"
> +
> +gdb_exit
> +return 0
> --
> 1.8.3.1
>