Community
Participate
Working Groups
Build Identifier: flush_syms() routine is not invoked on path mapping changes: No context change event is sent. This looks like a bug in symbols_proxy.c that should listen for memory_mapping_changed events and path mapping changed events; for now it does not listen for any of them. static void event_context_changed(Context * ctx, void * x) { flush_syms(ctx, (1 << UPDATE_ON_MEMORY_MAP_CHANGES) | (1 << UPDATE_ON_EXE_STATE_CHANGES)); } Adding a send_context_changed_event() to my path map change listener does seem to workaround this issue: static void event_path_map_changed(Channel * c, void * args) { memory_map_event_mapping_changed (my_ctx); send_context_changed_event (my_ctx); } Reproducible: Always Steps to Reproduce: 1. Set path map 2. Suspend a context, and inspect its stack trace. 3. Modify path map to point to a different module. 4. Inspect again the stack trace: Stack trace is not updated.
I have changed the code to: 1. generate memory map changed event when path map changes; 2. flush symbols and line numbers proxy caches on memory map changed event. Fixed. Thanks!