/* (C) 2003 XDA Developers itsme@xs4all.nl * * $Header: /var/db/cvs/xda-devtools/itsutils/common/debug.h,v 1.12 2005/06/12 22:52:01 itsme Exp $ */ #ifndef __DEBUG_H__ #include #include #include #include "vectorutils.h" #ifdef __cplusplus extern "C" { #endif void DebugSocketSend(const char *buf); void debug(const char *msg, ...); void error(const char *msg, ...); #ifdef __cplusplus } #endif void error(uint32_t dwErrorCode, const char *msg, ...); void vdebug(const char *msg, va_list ap); void vwdebug(const WCHAR *msg, va_list ap); void ceerror(const char *msg, ...); void debugt(char *msg, ...); class CDebugWindow { public: virtual ~CDebugWindow() { } virtual void appendString(const TCHAR *str)=0; }; #ifdef __cplusplus extern "C" { #endif void DebugSetLogfile(const char *filename); void DebugSetSocket(const char *ipaddr); void DebugRegisterWindow(CDebugWindow *wnd); void DebugNoMessagebox(); void DebugMessagebox(); void DebugNoOutputDebugString(); void DebugOutputDebugString(); void DebugNoStdOut(); void DebugStdOut(); #ifdef __cplusplus } #endif enum DumpUnitType { DUMPUNIT_BYTE=0, DUMPUNIT_WORD=1, DUMPUNIT_DWORD=2 }; inline int DumpUnitSize(DumpUnitType type) { return 1<(units_per_line | (unit<<12) | (format<<16)); } inline DumpUnitType dumpunit_from_flags(uint32_t flags) { return static_cast((flags>>12)&3); } inline DumpFormat dumpformat_from_flags(uint32_t flags) { return static_cast((flags>>16)&15); } inline int unitsperline_from_flags(uint32_t flags) { return static_cast(flags&0xfff); } void writedumpline(int64_t llOffset, const std::string& line); void bighexdump(int64_t llOffset, const ByteVector& data, uint32_t flags=hexdumpflags(DUMPUNIT_BYTE, 16, DUMP_HEX_ASCII)|HEXDUMP_WITH_OFFSET|HEXDUMP_SUMMARIZE); void bighexdump(const ByteVector& data, uint32_t flags=hexdumpflags(DUMPUNIT_BYTE, 16, DUMP_HEX_ASCII)|HEXDUMP_SUMMARIZE); #ifdef _WIN32_WCE bool isSmartPhone(); #endif #define __DEBUG_H__ #endif