Bug 404788 - Symbols proxy service : symbol cache is not flushed on path mapping changes
Summary: Symbols proxy service : symbol cache is not flushed on path mapping changes
Status: RESOLVED FIXED
Alias: None
Product: TCF
Classification: Tools
Component: Agent (show other bugs)
Version: 1.1   Edit
Hardware: All other
: P3 normal (vote)
Target Milestone: 1.1   Edit
Assignee: Eugene Tarassov CLA
QA Contact: Eugene Tarassov CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-04-03 05:19 EDT by Jean-Michel Pedrono CLA
Modified: 2013-06-05 04:40 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jean-Michel Pedrono CLA 2013-04-03 05:19:07 EDT
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.
Comment 1 Eugene Tarassov CLA 2013-04-05 12:32:57 EDT
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!