From 9b39fc8061f5883e8006f93fa9eefbe1b985123f Mon Sep 17 00:00:00 2001 From: Peter Berta <peter.berta@cern.ch> Date: Wed, 27 Oct 2021 19:44:32 +0200 Subject: [PATCH] Merge branch 'diag.TrkTrack-20211027' into '22.0-mc20' TrkTrack: More TrackStateOnSurface diagnostics. See merge request atlas/athena!47646 (cherry picked from commit 270cbfa5fcecbb2d9ed0899663b6c873d91e0307) 6b7a231f TrkTrack: More TrackStateOnSurface diagnostics. --- .../TrkTrack/src/TrackStateOnSurface.cxx | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/Tracking/TrkEvent/TrkTrack/src/TrackStateOnSurface.cxx b/Tracking/TrkEvent/TrkTrack/src/TrackStateOnSurface.cxx index a9bfc89c8bdc..46bf55384ba9 100755 --- a/Tracking/TrkEvent/TrkTrack/src/TrackStateOnSurface.cxx +++ b/Tracking/TrkEvent/TrkTrack/src/TrackStateOnSurface.cxx @@ -8,6 +8,26 @@ #include <iostream> #include <stdexcept> #include <string> +#include <dlfcn.h> + + +namespace { +void syminfo (void* addr) +{ + Dl_info info; + std::cerr << " " << addr; + if (dladdr (addr, &info) != 0) { + if (info.dli_fname) { + std::cerr << " " << info.dli_fname << " " << info.dli_fbase; + } + if (info.dli_sname) { + std::cerr << " " << info.dli_sname << " " << info.dli_saddr; + } + } + std::cerr << "\n"; +} +} + namespace Trk { TrackStateOnSurface::TrackStateOnSurface() {} @@ -155,7 +175,9 @@ TrackStateOnSurface::~TrackStateOnSurface() const char* p = reinterpret_cast<const char*>(m_alignmentEffectsOnTrack.get()); if (p && reinterpret_cast<uintptr_t>(p) < 0x1000) { std::cerr << "ERROR: ~TrackStateOnSurface bad AEOT pointer\n"; - CxxUtils::safeHexdump (std::cerr, ((const char*)this)-32, sizeof(TrackStateOnSurface)+32); + CxxUtils::safeHexdump (std::cerr, ((const char*)this)-80, sizeof(TrackStateOnSurface)+80+24); + syminfo (((void**)this)[0]); + syminfo (((void**)this)[-4]); } } -- GitLab