DynamoRIO / DynamoRIO/dynamorio

Probe API incompatible with pcaches: not flushing those with probe targets

Open
#660 0 comments 0 reactions 0 assignees View on GitHub
Component-API Migrated Priority-Medium
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 15h
Merged PRs (30d)
31

Description

_From [bruen...@google.com](https://code.google.com/u/109494838902877177630/) on January 28, 2012 00:20:32_

this was PR 226578

Client initialization happens after vm_areas_init, unlike hotp_init which
happens before. This leads to pcaches being loaded before client init is
done. As a result dr_register_probes (during client init) must explicitly
flush pcaches that conflict with probe definitions. Note, this also needs
to be done in dr_register_probes when it is invoked after client/dr init
time, i.e., done via a nudge (NYI today). For hotp, this flushing needs to be done only during nudges, not init time.

Also, note, during dll loading the pcache loading operation does this flush if there is a conflict between hotpatches and the pcache for the
corresponding dll.

This problem was triggered by an assert in hotp_walk_loader_list in
dr_register_probes().

The temporary solution is to make probe_api and use_persisted incompatible; done in both options compatibility check and in the assert mentioned above.

_Original issue: http://code.google.com/p/dynamorio/issues/detail?id=660_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.