aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2023-06-19 11:47:29 +0200
committerTom de Vries <tdevries@suse.de>2023-06-19 11:47:29 +0200
commit319626ca736d15836f5381bdc9f0e37396f61b15 (patch)
treebcfeeb1c7e3ff75e6d66025262ac1d6d92bd06cf /gdb
parentba769bb0e6fdf5b4c55577b068b93adf2f6d1333 (diff)
downloadgdb-319626ca736d15836f5381bdc9f0e37396f61b15.zip
gdb-319626ca736d15836f5381bdc9f0e37396f61b15.tar.gz
gdb-319626ca736d15836f5381bdc9f0e37396f61b15.tar.bz2
[gdb/testsuite] Add shared_gnat_runtime_has_debug_info
Test-case gdb.ada/catch_ex_std.exp passes for me with package libada7-debuginfo installed, but after removing it I get: ... (gdb) catch exception some_kind_of_error^M Your Ada runtime appears to be missing some debugging information.^M Cannot insert Ada exception catchpoint in this configuration.^M (gdb) FAIL: gdb.ada/catch_ex_std.exp: catch exception some_kind_of_error ... The test-case contains a require gnat_runtime_has_debug_info to deal with this, but the problem is that this checks the static gnat runtime, while this test-case uses the shared one. Fix this by introducing shared_gnat_runtime_has_debug_info, and requiring that one instead. Tested on x86_64-linux. PR testsuite/30094 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30094
Diffstat (limited to 'gdb')
-rw-r--r--gdb/testsuite/gdb.ada/catch_ex_std.exp2
-rw-r--r--gdb/testsuite/lib/ada.exp27
2 files changed, 26 insertions, 3 deletions
diff --git a/gdb/testsuite/gdb.ada/catch_ex_std.exp b/gdb/testsuite/gdb.ada/catch_ex_std.exp
index 3a2b10a..052d4d7 100644
--- a/gdb/testsuite/gdb.ada/catch_ex_std.exp
+++ b/gdb/testsuite/gdb.ada/catch_ex_std.exp
@@ -17,7 +17,7 @@ require allow_shlib_tests
load_lib "ada.exp"
-require allow_ada_tests gnat_runtime_has_debug_info
+require allow_ada_tests shared_gnat_runtime_has_debug_info
standard_ada_testfile foo
diff --git a/gdb/testsuite/lib/ada.exp b/gdb/testsuite/lib/ada.exp
index b4a93fa..d45d759 100644
--- a/gdb/testsuite/lib/ada.exp
+++ b/gdb/testsuite/lib/ada.exp
@@ -171,7 +171,7 @@ proc gnatmake_version_at_least { major } {
# Return 1 if the GNAT runtime appears to have debug info.
-gdb_caching_proc gnat_runtime_has_debug_info {} {
+proc gnat_runtime_has_debug_info_1 { shared } {
if { ![allow_ada_tests] } {
return 0
}
@@ -181,7 +181,18 @@ gdb_caching_proc gnat_runtime_has_debug_info {} {
set src "$srcdir/lib/gnat_debug_info_test.adb"
set dst [standard_output_file "gnat_debug_info_test"]
- if { [gdb_compile_ada_1 $src $dst executable {debug}] != "" } {
+ set opts {}
+ lappend opts debug
+ if { $shared } {
+ # Make sure we link against the shared GNAT run time.
+ set gnatbind_options [list -bargs -shared -margs]
+
+ foreach option $gnatbind_options {
+ lappend opts [concat "additional_flags=" $option]
+ }
+ }
+
+ if { [gdb_compile_ada_1 $src $dst executable $opts] != "" } {
return 0
}
@@ -208,3 +219,15 @@ gdb_caching_proc gnat_runtime_has_debug_info {} {
return $has_debug_info
}
+
+# Return 1 if the static GNAT runtime appears to have debug info.
+
+gdb_caching_proc gnat_runtime_has_debug_info {} {
+ return [gnat_runtime_has_debug_info_1 0]
+}
+
+# Return 1 if the shared GNAT runtime appears to have debug info.
+
+gdb_caching_proc shared_gnat_runtime_has_debug_info {} {
+ return [gnat_runtime_has_debug_info_1 1]
+}