aboutsummaryrefslogtreecommitdiff
path: root/gdb/remote-fileio.h
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2019-03-27 15:00:21 -0600
committerTom Tromey <tromey@adacore.com>2019-04-30 07:32:11 -0600
commit2ff0a947394eebf5ff9cd26088dce60ec8c10b48 (patch)
tree9aab473acb25d94e6d595dcc1860ca53f356b553 /gdb/remote-fileio.h
parenta776957c8c3a9177345ee7ca91077234ed7f508e (diff)
downloadbinutils-2ff0a947394eebf5ff9cd26088dce60ec8c10b48.zip
binutils-2ff0a947394eebf5ff9cd26088dce60ec8c10b48.tar.gz
binutils-2ff0a947394eebf5ff9cd26088dce60ec8c10b48.tar.bz2
Fix "catch exception" with dynamic linking
When an Ada program is dynamically linked against libgnat, and when one of the standard exceptions is used, the exception object may be referenced by the main executable using a copy relocation. In this situation, a "catch exception" for those exceptions will not manage to stop. This happens because, under the hood, "catch exception" creates an expression object that examines the object addresses -- but in this case, the address will be incorrect. This patch fixes the problem by arranging for these filter expressions to examine all the relevant minimal symbols. This way, the object from libgnat will be found as well. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-04-30 Tom Tromey <tromey@adacore.com> * ada-lang.c (ada_lookup_simple_minsyms): New function. (create_excep_cond_exprs): Iterate over program spaces. (ada_exception_catchpoint_cond_string): Examine all minimal symbols for exception types. gdb/testsuite/ChangeLog 2019-04-30 Tom Tromey <tromey@adacore.com> * lib/ada.exp (find_ada_tool): New proc. * lib/gdb.exp (gdb_compile_shlib): Allow .o files as inputs. * gdb.ada/catch_ex_std.exp: New file. * gdb.ada/catch_ex_std/foo.adb: New file. * gdb.ada/catch_ex_std/some_package.adb: New file. * gdb.ada/catch_ex_std/some_package.ads: New file.
Diffstat (limited to 'gdb/remote-fileio.h')
0 files changed, 0 insertions, 0 deletions