Feature #21637
closedTracing global variable assignment
Description
Motivation¶
Currently, there is no straightforward way to track global variable assignments at runtime.
The only workaround I am aware of involves using the line TracePoint event, combined with manipulation of the source code's AST, but this approach is extremely slow and impractical.
I'd like to propose a new gvar_set (and probably gvar_get, but that's out of the scope of this ticket) event which would fire whenever a global variable is written to.
Context¶
There's current an open https://bugs.ruby-lang.org/issues/15854 feature request with a PR by @st0012 (Stan Lo), but they currently do not address the global variables, so I've decided to open a new one and a new PR.
There's an open gvar-specific question: should "system" global variables like $! trigger the gvar_set event? (the current implementation does not)
Usage example¶
Updated by viralpraxis (Iaroslav Kurbatov) 11 months ago
- Description updated (diff)
Updated by alanwu (Alan Wu) 11 months ago
ยท Edited
Currently, there is no straightforward way to track global variable assignments at runtime.
There is Kernel#trace_var.
Updated by viralpraxis (Iaroslav Kurbatov) 11 months ago
alanwu (Alan Wu) wrote in #note-2:
Currently, there is no straightforward way to track global variable assignments at runtime.
There is Kernel#trace_var.
I'm aware of Kernel#trace_var, but it does not cover cases where the global variables aren't known beforehand
Updated by ko1 (Koichi Sasada) 10 months ago
Do you have usecases of this feature?
Updated by mame (Yusuke Endoh) 9 months ago
- Status changed from Open to Feedback