diff options
author | Mark Probst <mark.probst@gmail.com> | 2014-10-05 02:53:27 +0400 |
---|---|---|
committer | Mark Probst <mark.probst@gmail.com> | 2014-11-26 21:38:44 +0300 |
commit | 66311912de21f9cd0f7c4740ea9af519f420a393 (patch) | |
tree | 5a7b470617c766752c0fa406a4fc27d657129b22 /tools | |
parent | 60b927f6dfae55dc0f2c06605c6e22667aa9acd9 (diff) |
[sgen] New protocol entry for processing of individual reference.
Diffstat (limited to 'tools')
-rw-r--r-- | tools/sgen/sgen-grep-binprot.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tools/sgen/sgen-grep-binprot.c b/tools/sgen/sgen-grep-binprot.c index 917f40395eb..6ae484b7cf4 100644 --- a/tools/sgen/sgen-grep-binprot.c +++ b/tools/sgen/sgen-grep-binprot.c @@ -40,6 +40,7 @@ read_entry (FILE *in, void **data) case SGEN_PROTOCOL_MARK: size = sizeof (SGenProtocolMark); break; case SGEN_PROTOCOL_SCAN_BEGIN: size = sizeof (SGenProtocolScanBegin); break; case SGEN_PROTOCOL_SCAN_VTYPE_BEGIN: size = sizeof (SGenProtocolScanVTypeBegin); break; + case SGEN_PROTOCOL_SCAN_PROCESS_REFERENCE: size = sizeof (SGenProtocolScanProcessReference); break; case SGEN_PROTOCOL_WBARRIER: size = sizeof (SGenProtocolWBarrier); break; case SGEN_PROTOCOL_GLOBAL_REMSET: size = sizeof (SGenProtocolGlobalRemset); break; case SGEN_PROTOCOL_PTR_UPDATE: size = sizeof (SGenProtocolPtrUpdate); break; @@ -203,6 +204,11 @@ print_entry (int type, void *data) printf ("scan_vtype_begin obj %p size %d\n", entry->obj, entry->size); break; } + case SGEN_PROTOCOL_SCAN_PROCESS_REFERENCE: { + SGenProtocolScanProcessReference *entry = data; + printf ("scan_process_reference obj %p ptr %p value %p\n", entry->obj, entry->ptr, entry->value); + break; + } case SGEN_PROTOCOL_WBARRIER: { SGenProtocolWBarrier *entry = data; printf ("wbarrier ptr %p value %p value_vtable %p\n", entry->ptr, entry->value, entry->value_vtable); @@ -357,6 +363,10 @@ is_match (gpointer ptr, int type, void *data) SGenProtocolScanVTypeBegin *entry = data; return matches_interval (ptr, entry->obj, entry->size); } + case SGEN_PROTOCOL_SCAN_PROCESS_REFERENCE: { + SGenProtocolScanProcessReference *entry = data; + return ptr == entry->obj || ptr == entry->ptr || ptr == entry->value; + } case SGEN_PROTOCOL_WBARRIER: { SGenProtocolWBarrier *entry = data; return ptr == entry->ptr || ptr == entry->value; |