void HexDump(unsigned char *buf, int size) { int i = 0; for (i = 0; i < size; i += 16) HexDumpLine(buf + i, size - i, i); fprintf(LOG, "%08x\n", size); }
EXPORT_C void LtkUtils::HexDumpToOutput(const TDesC8& aBuf, RIoWriteHandle& aHandle, TInt& aOffset) { TBuf<KTotalLen> lineBuf; const TInt len = aBuf.Length(); for (TInt i = 0; i < len; i += KLineSize) { TPtrC8 line = aBuf.Mid(i, Min(KLineSize, len-i)); HexDumpLine(line, lineBuf, aOffset+i); aHandle.Write(lineBuf); } aOffset += len; }
EXPORT_C void LtkUtils::HexDumpToRDebug(const TDesC8& aBuf, TInt& aOffset) { TBuf<KTotalLen> lineBuf; const TInt len = aBuf.Length(); for (TInt i = 0; i < len; i += KLineSize) { TPtrC8 line = aBuf.Mid(i, Min(KLineSize, len-i)); HexDumpLine(line, lineBuf, aOffset+i); RDebug::RawPrint(lineBuf); } aOffset += len; }
static inline void HexDump(const char *prefix, const void *_data, size_t length) { const uint8_t *data = (const uint8_t *)_data; unsigned offset = 0; while (length > 0) { size_t line_length = length; if (line_length > 0x10) line_length = 0x10; HexDumpLine(prefix, offset, data, line_length); data += line_length; length -= line_length; offset += 0x10; } }
EXPORT_C HBufC* LtkUtils::HexDumpL(const TDesC8& aBuf) { TInt numLines = (aBuf.Length() + KLineSize-1) / KLineSize; HBufC* result = HBufC::NewLC(numLines * KTotalLen); TPtr resultPtr = result->Des(); for (TInt i = 0; i < aBuf.Length(); i += KLineSize) { TPtrC8 line = aBuf.Mid(i, Min(KLineSize, aBuf.Length()-i)); TPtr wptr((TUint16*)resultPtr.Ptr() + resultPtr.Length(), KTotalLen); HexDumpLine(line, wptr, i); resultPtr.SetLength(resultPtr.Length() + wptr.Length()); // MidTPtr doesn't update length of original } CleanupStack::Pop(result); return result; }