some musings

https://chromiumcodereview.appspot.com/9401019/diff/1004/src/platform-win32.cc
File src/platform-win32.cc (right):

https://chromiumcodereview.appspot.com/9401019/diff/1004/src/platform-win32.cc#newcode131
src/platform-win32.cc:131: // TODO(siggi): Check for the presence of the
Syzygy instrumentation by
Another way to do this would be to introduce and reference a known
symbol that is set to NULL by default in the source code, but rewritten
to point to the imported resolution function during instrumentation.

That way less knowledge of the profiler is required here.

i.e.,
  // Declared non-const, at global scope, and marked extern.
  extern "C" ReturnAddressResolutionFunction address_resolution_func =
NULL;

Usage below is then simplified:

  Address* OS::ResolveReturnAddressLocation(Address* pc_address) {
    if (address_resolution_func == NULL)
      return pc_address;
    return address_resolution_func(pc_address);
  }

It's the responsiblity of the instrumenter to recognize the symbol and
rewrite all references/relocs to it.

https://chromiumcodereview.appspot.com/9401019/

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to