DynamoRIO / DynamoRIO/dynamorio
Probe API incompatible with pcaches: not flushing those with probe targets
- 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
Assessment
This issue has not been assessed yet.