[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [valgrind] [Bug 79362] Debug info is lost for .so files when they are dlclose'd
From:       Julian Seward <bugzilla_noreply () kde ! org>
Date:       2017-08-04 13:36:36
Message-ID: bug-79362-17878-QZqu7gP8wX () http ! bugs ! kde ! org/
[Download RAW message or body]

https://bugs.kde.org/show_bug.cgi?id=79362

--- Comment #72 from Julian Seward <jseward@acm.org> ---
(In reply to Philippe Waroquiers from comment #71)
> Created attachment 107073 [details]
> (hack) : patch that adds measurement code to scan the EC for a .so unload

+            for (j = 0; j < ec->n_ips; j++) {
+               if (UNLIKELY(ec->ips[j] >= from && ec->ips[j] <= to)) {
+                  break;
+               }
+            }

This is a side-effect-free loop whose only computed value (j) is unused,
and provably terminates.  I think it's likely that gcc noticed all 3 facts
and deleted the loop.

Do you get different results if you change it like this?

+            for (j = 0; j < ec->n_ips; j++) {
+               if (UNLIKELY(ec->ips[j] >= from && ec->ips[j] <= to)) {
                   __asm__ __volatile__("":::"cc","memory");
+                  break;
+               }
+            }

The (empty) inline assembly claims to make arbitrary changes to memory and
might scare gcc into keeping the loop alive.

-- 
You are receiving this mail because:
You are watching all bug changes.=
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic