mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-21 18:06:50 +00:00
base: make trace resumable
revert relocations so a paused subject can resume without changing its policy. issue #3294
This commit is contained in:
parent
399487c85d
commit
ac0ecdf855
@ -60,6 +60,11 @@ bool Trace::Logger::_evaluate_control()
|
|||||||
|
|
||||||
/* unload policy */
|
/* unload policy */
|
||||||
if (policy_module) {
|
if (policy_module) {
|
||||||
|
|
||||||
|
/* revoke relocations */
|
||||||
|
for (unsigned i = 0; i < sizeof(Trace::Policy_module)/sizeof(void *); i++) {
|
||||||
|
((addr_t *)policy_module)[i] -= (addr_t)(policy_module);
|
||||||
|
}
|
||||||
_env().rm().detach(policy_module);
|
_env().rm().detach(policy_module);
|
||||||
policy_module = 0;
|
policy_module = 0;
|
||||||
}
|
}
|
||||||
@ -82,7 +87,8 @@ bool Trace::Logger::_evaluate_control()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enabled && (policy_version != control->policy_version())) {
|
bool const new_policy = policy_version != control->policy_version();
|
||||||
|
if (enabled && (new_policy || policy_module == 0)) {
|
||||||
|
|
||||||
/* suppress tracing during policy change */
|
/* suppress tracing during policy change */
|
||||||
Control::Inhibit_guard guard(*control);
|
Control::Inhibit_guard guard(*control);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user