Re: [DynInst_API:] commit: further 9.1 fixes


Date: Tue, 08 Dec 2015 13:26:37 -0600
From: Bill Williams <bill@xxxxxxxxxxx>
Subject: Re: [DynInst_API:] commit: further 9.1 fixes
On 12/08/2015 12:47 PM, Barton Miller wrote:
How often are these indirect vs. direct? Does it ever happen that the indirect points to static tables of addresses, so is statically resolvable?

Mostly they're direct; indirect ones exist in a few places in newer glibc (and/or libstdc++) versions from what we've seen, but not at all on a test run on RHEL6.

It's possible that the indirect ones would point to static tables of addresses, but highly unlikely--there's no reason to encode as indirect unless you're actually changing the potential catch block at runtime. Haven't got data about the existence of static tables, but previously we were recording "catch blocks" that were the addresses of the pointers, which is IMO actively harmful. Furthermore, we know that in the cases where there aren't static tables, we're often getting pointers in .bss, which we obviously can't even try to follow statically (this was producing crashes).

--bart


On 12/8/2015 11:14 AM, Bill Williams wrote:
* Exception block parsing now ignores indirect catch blocks; these contain pointers to catch blocks and should be assumed not to be statically resolvable.
_______________________________________________
Dyninst-api mailing list
Dyninst-api@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api

[← Prev in Thread] Current Thread [Next in Thread→]