void CStackWalker::OnCallstackEntry(CallstackEntryType eType, CallstackEntry & entry) { CHAR buffer[STACKWALK_MAX_NAMELEN]; if((eType != lastEntry) && (entry.offset != 0)) { if(entry.name[0] == 0) strcpy(entry.name, "(function-name not available)"); if(entry.undName[0] != 0) strcpy(entry.name, entry.undName); if(entry.undFullName[0] != 0) strcpy(entry.name, entry.undFullName); char* p = strrchr(entry.loadedImageName, '\\'); if(!p) p = entry.loadedImageName; else ++p; if(entry.lineFileName[0] == 0) { if(entry.name[0] == 0) sprintf(entry.name, "%p", entry.offset); sprintf(buffer, "%s!%s Line %u\n", p, entry.name, entry.lineNumber); } else sprintf(buffer, "%s!%s Line %u\n", p, entry.name, entry.lineNumber); OnOutput(buffer); } }
/* * 每一次接收, */ int TCPServer_Output(SOCKET iSocket) { // 1、接收逻辑 int iRet = OnOutput(iSocket); if(iRet < 0) { XLOG_ERROR(m_pLogger, "OnOutput error: iRet = %d", iRet); return -2; } return 0; }
/* output callback */ ivTTSErrID ivCall OutputCB( ivPointer pParameter, /* [in] user callback parameter */ ivUInt16 nCode, /* [in] output data code */ ivCPointer pcData, /* [in] output data buffer */ ivSize nSize ) /* [in] output data size */ { /* »ñÈ¡Ïß³ÌÏûÏ¢£¬ÊÇ·ñÍ˳öºÏ³É */ pParameter = NULL; ivTTSErrID tErr = DoMessage(); if ( tErr != ivTTS_ERR_OK ) return tErr; /* °ÑÓïÒôÊý¾ÝËÍÈ¥²¥Òô */ return OnOutput(nCode, pcData, nSize); }
void CStackWalker::OnCallstackEntry(CallstackEntryType eType, CallstackEntry &entry) { CHAR buffer[STACKWALK_MAX_NAMELEN]; if ( (eType != lastEntry) && (entry.offset != 0) ) { if (entry.name[0] == 0) strcpy(entry.name, "(function-name not available)"); if (entry.undName[0] != 0) strcpy(entry.name, entry.undName); if (entry.undFullName[0] != 0) strcpy(entry.name, entry.undFullName); /* if(!stricmp(entry.symTypeString, "-exported-")) strcpy(entry.symTypeString, "dll"); for(uint32 i = 0; i < strlen(entry.symTypeString); ++i) entry.symTypeString[i] = tolower(entry.symTypeString);*/ char * p = strrchr(entry.loadedImageName, '\\'); if(!p) p = entry.loadedImageName; else ++p; if (entry.lineFileName[0] == 0) { //strcpy(entry.lineFileName, "(filename not available)"); //if (entry.moduleName[0] == 0) //strcpy(entry.moduleName, "(module-name not available)"); //sprintf(buffer, "%s): %s: %s\n", (LPVOID) entry.offset, entry.moduleName, entry.lineFileName, entry.name); //sprintf(buffer, "%s. if(entry.name[0] == 0) sprintf(entry.name, "%p", entry.offset); sprintf(buffer, "%s!%s Line %u\n", p, entry.name, entry.lineNumber ); } else sprintf(buffer, "%s!%s Line %u\n", p, entry.name, entry.lineNumber); //OnOutput(buffer); /*if(p) OnOutput(p); else*/ OnOutput(buffer); } }