You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, the xray runtime implementations use a brittle struct-based configuration system for controlling the options available to a particular mode. This doesn't scale well and is hard to control dynamically.
Ideally we should be using the flag parsing mechanisms already in the sanitizer_common library, so that all logging modes should just be configurable using strings that get parsed as flags. This also allows for easily configuring these at runtime.
Proposed steps for implementing this change:
Implement an alternative means of initialising logging implementations. Call the function something like __xray_log_configure_mode(const char* mode, const char *options, size_t size).
Allow logging modes to install a configuration handler, different from the initialisation handler.
Optional steps:
Deprecate the initialisation handler registration/API (i.e. mark __xray_log_init(...) as deprecated).
Implement an ABI version checker, to prepare for updating the XRayLogImpl struct (similar to what ASan does).
Change the XRayLogImpl struct definition to new layout covering mode configuration, and in-memory buffer processing.
The text was updated successfully, but these errors were encountered:
Extended Description
Currently, the xray runtime implementations use a brittle struct-based configuration system for controlling the options available to a particular mode. This doesn't scale well and is hard to control dynamically.
Ideally we should be using the flag parsing mechanisms already in the sanitizer_common library, so that all logging modes should just be configurable using strings that get parsed as flags. This also allows for easily configuring these at runtime.
Proposed steps for implementing this change:
Implement an alternative means of initialising logging implementations. Call the function something like
__xray_log_configure_mode(const char* mode, const char *options, size_t size)
.Allow logging modes to install a configuration handler, different from the initialisation handler.
Optional steps:
Deprecate the initialisation handler registration/API (i.e. mark
__xray_log_init(...)
as deprecated).Implement an ABI version checker, to prepare for updating the XRayLogImpl struct (similar to what ASan does).
Change the XRayLogImpl struct definition to new layout covering mode configuration, and in-memory buffer processing.
The text was updated successfully, but these errors were encountered: