inline TInt DPriSamplerImpl::EncodeChunkName(DThread& t) { // the size of the following name is in the first byte TUint8* size = &sample[0]; *size = 0; this->sampleDescriptor.Zero(); t.TraceAppendFullName(this->sampleDescriptor,false); *size += this->sampleDescriptor.Size(); // copy the 4 bytes from the thread id field this->sampleDescriptor.Append((TUint8*)&(t.iId),sizeof(TUint)); *size += sizeof(TUint); // the size is the descriptor length + the size field LOGSTRING2("Name size - %d",*size); return ((TInt)(*size))+1; }
void DumpExcInfoX(TArmExcInfo& a) { DumpExcInfo(a); NThread* nthread = NCurrentThread(); if (nthread == NULL) Kern::Printf("No current thread"); else { DThread* thread = Kern::NThreadToDThread(NCurrentThread()); if (thread) { TFullName thread_name; thread->TraceAppendFullName(thread_name, EFalse); Kern::Printf("Thread full name=%S", &thread_name); Kern::Printf("Thread ID=%d, KernCSLocked=%d",TheCurrentThread->iId,NKern::KernelLocked()); } else Kern::Printf("Thread N/A, KernCSLocked=%d",NKern::KernelLocked()); } }