Exemplo n.º 1
0
        public ModuleEvent(LTTngEvent data, LTTngContext context, ExecutingThreadTracker threadTracker)
        {
            this.eventType = ParseEventType(data.Name);

            if (data.Payload.FieldsByName.ContainsKey("_ip"))
            {
                this.instructionPointer = string.Format("0x{0:X}", data.Payload.ReadFieldAsUInt64("_ip"));
            }
            else
            {
                this.instructionPointer = String.Empty;
            }
            if (data.StreamDefinedEventContext != null && data.StreamDefinedEventContext.FieldsByName.ContainsKey("_tid"))
            {
                this.tid = data.StreamDefinedEventContext.ReadFieldAsInt32("_tid");
            }
            else
            {
                this.tid = threadTracker.CurrentTidAsInt(context.CurrentCpu);
            }
            this.threadId = this.tid.ToString();
            if (data.Payload.FieldsByName.ContainsKey("_refcnt"))
            {
                this.refCount = data.Payload.ReadFieldAsInt32("_refcnt");
            }
            else
            {
                this.refCount = 0;
            }

            this.moduleName = data.Payload.FieldsByName["_name"].GetValueAsString();
            this.time       = data.Timestamp;
        }
 public SyscallEvent(LTTngEvent data, LTTngContext context, ExecutingThreadTracker threadTracker)
 {
     this.name      = EventNameToSyscallName(data.Name, out this.isEntry);
     this.timestamp = data.Timestamp;
     this.fields    = data.Payload.FieldsByName;
     if (data.StreamDefinedEventContext != null && data.StreamDefinedEventContext.FieldsByName.ContainsKey("_tid"))
     {
         this.tid = data.StreamDefinedEventContext.ReadFieldAsInt32("_tid");
     }
     else
     {
         this.tid = threadTracker.CurrentTidAsInt(context.CurrentCpu);
     }
 }