diff options
author | Mark Probst <mark.probst@gmail.com> | 2014-11-07 01:59:08 +0300 |
---|---|---|
committer | Mark Probst <mark.probst@gmail.com> | 2014-11-14 02:44:15 +0300 |
commit | 3639ee61f1e7cbb891080b777c573970887954ca (patch) | |
tree | b9d8fd62f5fa861af3c3435b1dc7ecfcc775a474 /tools | |
parent | fbfe8518ce0acb604e59eb41031973d61ec9597f (diff) |
[sgen] Binary protocol entry for pin stage.
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 ea416b7e3a3..e881fd02f9e 100644 --- a/tools/sgen/sgen-grep-binprot.c +++ b/tools/sgen/sgen-grep-binprot.c @@ -35,6 +35,7 @@ read_entry (FILE *in, void **data) case SGEN_PROTOCOL_ALLOC_PINNED: size = sizeof (SGenProtocolAlloc); break; case SGEN_PROTOCOL_ALLOC_DEGRADED: size = sizeof (SGenProtocolAlloc); break; case SGEN_PROTOCOL_COPY: size = sizeof (SGenProtocolCopy); break; + case SGEN_PROTOCOL_PIN_STAGE: size = sizeof (SGenProtocolPinStage); break; case SGEN_PROTOCOL_PIN: size = sizeof (SGenProtocolPin); break; case SGEN_PROTOCOL_MARK: size = sizeof (SGenProtocolMark); break; case SGEN_PROTOCOL_SCAN_BEGIN: size = sizeof (SGenProtocolScanBegin); break; @@ -177,6 +178,11 @@ print_entry (int type, void *data) printf ("copy from %p to %p vtable %p size %d\n", entry->from, entry->to, entry->vtable, entry->size); break; } + case SGEN_PROTOCOL_PIN_STAGE: { + SGenProtocolPinStage *entry = data; + printf ("pin stage addr ptr %p addr %p thread %p\n", entry->addr_ptr, entry->addr, entry->thread); + break; + } case SGEN_PROTOCOL_PIN: { SGenProtocolPin *entry = data; printf ("pin obj %p vtable %p size %d\n", entry->obj, entry->vtable, entry->size); @@ -331,6 +337,10 @@ is_match (gpointer ptr, int type, void *data) SGenProtocolCopy *entry = data; return matches_interval (ptr, entry->from, entry->size) || matches_interval (ptr, entry->to, entry->size); } + case SGEN_PROTOCOL_PIN_STAGE: { + SGenProtocolPinStage *entry = data; + return ptr == entry->addr_ptr || ptr == entry->addr || ptr == entry->thread; + } case SGEN_PROTOCOL_PIN: { SGenProtocolPin *entry = data; return matches_interval (ptr, entry->obj, entry->size); |