static CMDRESULT cbStrLen(int argc, char* argv[]) { if(argc < 2) { dputs("not enough arguments!"); return STATUS_ERROR; } dprintf("\"%s\"[%d]\n", argv[1], strlen(argv[1])); return STATUS_CONTINUE; }
static void dprint_font_t(const pl_font_t *pfont) { dprint_font_name(pfont); dprintf3("storage=%d scaling=%d type=%d ", pfont->storage, pfont->scaling_technology, pfont->font_type); dprint_cc(pfont->character_complement); dputs(";\n "); dprint_font_params_t(&pfont->params); }
void SymEnum(uint Base, CBSYMBOLENUM EnumCallback, void* UserData) { SYMBOLCBDATA symbolCbData; symbolCbData.cbSymbolEnum = EnumCallback; symbolCbData.user = UserData; // Enumerate every single symbol for the module in 'base' if(!SafeSymEnumSymbols(fdProcessInfo->hProcess, Base, "*", EnumSymbols, &symbolCbData)) dputs("SymEnumSymbols failed!"); }
void LinearAnalysis::Analyse() { dputs("Starting analysis..."); DWORD ticks = GetTickCount(); PopulateReferences(); dprintf("%u called functions populated\n", _functions.size()); AnalyseFunctions(); dprintf("Analysis finished in %ums!\n", GetTickCount() - ticks); }
int _dvprintf(const char *fmt, va_list ap) { char buf[256]; int err; err = vsnprintf(buf, sizeof(buf), fmt, ap); dputs(ALWAYS, buf); return err; }
bool cbSetWatchName(int argc, char* argv[]) { if(argc < 3) { dputs(QT_TRANSLATE_NOOP("DBG", "No enough arguments for SetWatchName")); return false; } duint id; bool ok = valfromstring(argv[1], &id); if(ok) { WatchModifyName((unsigned int)id, argv[2]); return true; } else { dputs(QT_TRANSLATE_NOOP("DBG", "Error expression in argument 1.\n")); return false; } }
//database functions void dbsave() { dprintf("Saving database..."); DWORD ticks = GetTickCount(); JSON root = json_object(); CommentCacheSave(root); LabelCacheSave(root); BookmarkCacheSave(root); FunctionCacheSave(root); LoopCacheSave(root); BpCacheSave(root); WString wdbpath = StringUtils::Utf8ToUtf16(dbpath); if(json_object_size(root)) { Handle hFile = CreateFileW(wdbpath.c_str(), GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0); if(!hFile) { dputs("\nFailed to open database for writing!"); json_decref(root); //free root return; } SetEndOfFile(hFile); char* jsonText = json_dumps(root, JSON_INDENT(4)); DWORD written = 0; if(!WriteFile(hFile, jsonText, (DWORD)strlen(jsonText), &written, 0)) { json_free(jsonText); dputs("\nFailed to write database file!"); json_decref(root); //free root return; } hFile.Close(); json_free(jsonText); if(!settingboolget("Engine", "DisableDatabaseCompression")) LZ4_compress_fileW(wdbpath.c_str(), wdbpath.c_str()); } else //remove database when nothing is in there DeleteFileW(wdbpath.c_str()); dprintf("%ums\n", GetTickCount() - ticks); json_decref(root); //free root }
/** * Extension of print_time_diff to add on the .s for timer mode * @param d device to print to * @param cur current time * @param last the last time to be printed on the screen */ void print_time_diff_ex(device_t d, unsigned int cur, unsigned int last) { if (last/1000 != cur/1000) { dputs(d, ""); print_time_diff(d, cur, last); dputchar(d, '.'); dputchar(d, '0' + (cur/100)%10); } else if ((last/100)%10 != (cur/100)%10) { dputchar(d, ''); dputchar(d, '0' + (cur/100)%10); } }
/* Print a matrix */ static void trace_matrix_fixed(const gs_matrix_fixed * pmat) { trace_matrix((const gs_matrix *)pmat); if (pmat->txy_fixed_valid) { dprintf2("\t\tt_fixed: [%6g %6g]\n", fixed2float(pmat->tx_fixed), fixed2float(pmat->ty_fixed)); } else { dputs("\t\tt_fixed not valid\n"); } }
static void debug_b_print_decode(const gs_pixel_image_t *pim, int num_decode) { if (gs_debug_c('b')) { const char *str = " Decode=["; int i; for (i = 0; i < num_decode; str = " ", ++i) dprintf2("%s%g", str, pim->Decode[i]); dputs("]\n"); } }
static void dprintf(const char* fmt, ...) { #if defined(_DEBUG) va_list argptr; char sbuf[1024]; va_start(argptr,fmt); vsnprintf(sbuf,sizeof(sbuf),fmt,argptr); sbuf[sizeof(sbuf)-1]=0; va_end(argptr); dputs(sbuf); #endif /* _DEBUG */ }
void trace_copy_rop(const char *cname, gx_device * dev, const byte * sdata, int sourcex, uint sraster, gx_bitmap_id id, const gx_color_index * scolors, const gx_strip_bitmap * textures, const gx_color_index * tcolors, int x, int y, int width, int height, int phase_x, int phase_y, gs_logical_operation_t lop) { dlprintf4("%s: dev=0x%lx(%s) depth=%d\n", cname, (ulong) dev, dev->dname, dev->color_info.depth); dlprintf4(" source data=0x%lx x=%d raster=%u id=%lu colors=", (ulong) sdata, sourcex, sraster, (ulong) id); if (scolors) dprintf2("(%lu,%lu);\n", scolors[0], scolors[1]); else dputs("none;\n"); if (textures) dlprintf8(" textures=0x%lx size=%dx%d(%dx%d) raster=%u shift=%d(%d)", (ulong) textures, textures->size.x, textures->size.y, textures->rep_width, textures->rep_height, textures->raster, textures->shift, textures->rep_shift); else dlputs(" textures=none"); if (tcolors) dprintf2(" colors=(%lu,%lu)\n", tcolors[0], tcolors[1]); else dputs(" colors=none\n"); dlprintf7(" rect=(%d,%d),(%d,%d) phase=(%d,%d) op=0x%x\n", x, y, x + width, y + height, phase_x, phase_y, (uint) lop); if (gs_debug_c('B')) { if (sdata) debug_dump_bitmap(sdata, sraster, height, "source bits"); if (textures && textures->data) debug_dump_bitmap(textures->data, textures->raster, textures->size.y, "textures bits"); } }
void _openConnectionIC( HINTERNET *hInet, HINTERNET *hConn, const char *host, BOOL useHttps ) { char proxyServer[MAX_SERVERNAME + MAX_KEYLENGTH]; proxyServer[0] = NUL; if ( proxyInfoForBBAuth.useProxy ) sprintf( proxyServer, "%s:%d", proxyInfoForBBAuth.proxyServer, proxyInfoForBBAuth.proxyPort ); *hInet = InternetOpen( // "httpAuth/1.0 (written by H.Tsujimura)", /* ← Buzzurl はこれでも OK */ "Mozilla/4.0 (compatible; MSIE 6.0)", /* ← newsing はこっちじゃないと通らない */ proxyInfoForBBAuth.useProxy ? INTERNET_OPEN_TYPE_PROXY : INTERNET_OPEN_TYPE_PRECONFIG, proxyInfoForBBAuth.useProxy ? proxyServer : NULL, proxyInfoForBBAuth.useProxy ? "<local>" : NULL, 0 ); if ( *hInet == NULL ) return; *hConn = InternetConnect( *hInet, host, (INTERNET_PORT) (useHttps ? INTERNET_DEFAULT_HTTPS_PORT : INTERNET_DEFAULT_HTTP_PORT), proxyInfoForBBAuth.useProxy && proxyInfoForBBAuth.proxyUserName[0] ? proxyInfoForBBAuth.proxyUserName : NULL, proxyInfoForBBAuth.useProxy && proxyInfoForBBAuth.proxyPassword[0] ? proxyInfoForBBAuth.proxyPassword : NULL, INTERNET_SERVICE_HTTP, 0, 0 ); if ( *hConn == NULL ) { dputs( "_openConnectionIC(): 失敗\n" ); InternetCloseHandle( *hInet ); *hInet = NULL; } }
bool cbSetWatchdog(int argc, char* argv[]) { if(argc < 2) { dputs(QT_TRANSLATE_NOOP("DBG", "No enough arguments for delwatch\n")); return false; } duint id; bool ok = valfromstring(argv[1], &id); if(!ok) { dputs(QT_TRANSLATE_NOOP("DBG", "Error expression in argument 1.\n")); return false; } WATCHDOGMODE mode; if(argc > 2) { if(_stricmp(argv[2], "disabled") == 0) mode = WATCHDOGMODE::MODE_DISABLED; else if(_stricmp(argv[2], "changed") == 0) mode = WATCHDOGMODE::MODE_CHANGED; else if(_stricmp(argv[2], "unchanged") == 0) mode = WATCHDOGMODE::MODE_UNCHANGED; else if(_stricmp(argv[2], "istrue") == 0) mode = WATCHDOGMODE::MODE_ISTRUE; else if(_stricmp(argv[2], "isfalse") == 0) mode = WATCHDOGMODE::MODE_ISFALSE; else { dputs(QT_TRANSLATE_NOOP("DBG", "Unknown watchdog mode.\n")); return false; } } else mode = (WatchGetWatchdogEnabled((unsigned int)id) == WATCHDOGMODE::MODE_DISABLED) ? WATCHDOGMODE::MODE_CHANGED : WATCHDOGMODE::MODE_DISABLED; WatchSetWatchdogMode((unsigned int)id, mode); return true; }
bool cbSetWatchExpression(int argc, char* argv[]) { if(argc < 3) { dputs(QT_TRANSLATE_NOOP("DBG", "No enough arguments for SetWatchExpression")); return false; } duint id; bool ok = valfromstring(argv[1], &id); if(ok) { WATCHVARTYPE varType; if(argc > 3) { if(_stricmp(argv[3], "uint") == 0) varType = WATCHVARTYPE::TYPE_UINT; else if(_stricmp(argv[3], "int") == 0) varType = WATCHVARTYPE::TYPE_INT; else if(_stricmp(argv[3], "float") == 0) varType = WATCHVARTYPE::TYPE_FLOAT; else if(_stricmp(argv[3], "ascii") == 0) varType = WATCHVARTYPE::TYPE_ASCII; else if(_stricmp(argv[3], "unicode") == 0) varType = WATCHVARTYPE::TYPE_UNICODE; else varType = WATCHVARTYPE::TYPE_UINT; } else varType = WATCHVARTYPE::TYPE_UINT; WatchModifyExpr((unsigned int)id, argv[2], varType); return true; } else { dputs(QT_TRANSLATE_NOOP("DBG", "Error expression in argument 1.\n")); return false; } }
/* Unmarking routine for ref objects. */ static void refs_clear_marks(const gs_memory_t *cmem, void /*obj_header_t */ *vptr, uint size, const gs_memory_struct_type_t * pstype) { ref_packed *rp = (ref_packed *) vptr; ref_packed *end = (ref_packed *) ((byte *) vptr + size); /* Since the last ref is full-size, we only need to check for */ /* the end of the block when we see one of those. */ for (;;) { if (r_is_packed(rp)) { #ifdef DEBUG if (gs_debug_c('8')) { dlprintf1(" [8]unmark packed 0x%lx ", (ulong) rp); debug_print_ref(cmem, (const ref *)rp); dputs("\n"); } #endif r_clear_pmark(rp); rp++; } else { /* full-size ref */ ref *const pref = (ref *)rp; #ifdef DEBUG if (gs_debug_c('8')) { dlprintf1(" [8]unmark ref 0x%lx ", (ulong) rp); debug_print_ref(cmem, pref); dputs("\n"); } #endif r_clear_attrs(pref, l_mark); rp += packed_per_ref; if (rp >= (ref_packed *) end) break; } } }
int gx_begin_transparency_group(gs_imager_state * pis, gx_device * pdev, const gs_pdf14trans_params_t * pparams) { gs_transparency_group_params_t tgp = {0}; gs_rect bbox; if (pparams->Background_components != 0 && pparams->Background_components != pdev->color_info.num_components) return_error(gs_error_rangecheck); tgp.Isolated = pparams->Isolated; tgp.Knockout = pparams->Knockout; tgp.idle = pparams->idle; tgp.mask_id = pparams->mask_id; /* Needed so that we do proper blending */ tgp.group_color = pparams->group_color; tgp.group_color_numcomps = pparams->group_color_numcomps; tgp.iccprofile = pparams->iccprofile; tgp.icc_hashcode = pparams->icc_hash; pis->opacity.alpha = pparams->opacity.alpha; pis->shape.alpha = pparams->shape.alpha; pis->blend_mode = pparams->blend_mode; bbox = pparams->bbox; #ifdef DEBUG if (gs_debug_c('v')) { static const char *const cs_names[] = { GS_COLOR_SPACE_TYPE_NAMES }; dlprintf6("[v](0x%lx)gx_begin_transparency_group [%g %g %g %g] Num_grp_clr_comp = %d\n", (ulong)pis, bbox.p.x, bbox.p.y, bbox.q.x, bbox.q.y, pparams->group_color_numcomps); if (tgp.ColorSpace) dprintf1(" CS = %s", cs_names[(int)gs_color_space_get_index(tgp.ColorSpace)]); else dputs(" (no CS)"); dprintf2(" Isolated = %d Knockout = %d\n", tgp.Isolated, tgp.Knockout); if (tgp.iccprofile) dprintf(" Have ICC Profile for blending\n"); } #endif if (dev_proc(pdev, begin_transparency_group) != 0) return (*dev_proc(pdev, begin_transparency_group)) (pdev, &tgp, &bbox, pis, NULL, NULL); else return 0; }
int _dprintf(const char *fmt, ...) { char buf[256]; int err; va_list ap; va_start(ap, fmt); err = vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); dputs(ALWAYS, buf); return err; }
DWORD WINAPI scriptRunSync(void* arg) { int destline = (int)(duint)arg; if(!destline || destline > (int)linemap.size()) //invalid line destline = 0; if(destline) { destline = scriptinternalstep(destline - 1); //no breakpoints on non-executable locations if(!scriptinternalbpget(destline)) //no breakpoint set scriptinternalbptoggle(destline); } bAbort = false; if(scriptIp) scriptIp--; scriptIp = scriptinternalstep(scriptIp); bool bContinue = true; bool bIgnoreTimeout = settingboolget("Engine", "NoScriptTimeout"); unsigned long long kernelTime, userTime; FILETIME creationTime, exitTime; // unused while(bContinue && !bAbort) //run loop { bContinue = scriptinternalcmd(); if(scriptIp == scriptinternalstep(scriptIp)) //end of script { bContinue = false; scriptIp = scriptinternalstep(0); } if(bContinue) scriptIp = scriptinternalstep(scriptIp); //this is the next ip if(scriptinternalbpget(scriptIp)) //breakpoint=stop run loop bContinue = false; if(bContinue && !bIgnoreTimeout && GetThreadTimes(GetCurrentThread(), &creationTime, &exitTime, reinterpret_cast<LPFILETIME>(&kernelTime), reinterpret_cast<LPFILETIME>(&userTime)) != 0) { if(userTime + kernelTime >= 10 * 10000000) // time out in 10 seconds of CPU time { if(GuiScriptMsgyn(GuiTranslateText(QT_TRANSLATE_NOOP("DBG", "The script is too busy. Would you like to terminate it now?"))) != 0) { dputs(QT_TRANSLATE_NOOP("DBG", "Script is terminated by user.")); break; } else bIgnoreTimeout = true; } } } bIsRunning = false; //not running anymore GuiScriptSetIp(scriptIp); return 0; }
int _dprintf(const char *fmt, ...) { char ts_buf[13]; int err; snprintf(ts_buf, sizeof(ts_buf), "[%lu] ", current_time()); dputs(ALWAYS, ts_buf); va_list ap; va_start(ap, fmt); err = _printf_engine(&_dprintf_output_func, NULL, fmt, ap); va_end(ap); return err; }
//database functions void dbsave() { dprintf("saving database..."); DWORD ticks = GetTickCount(); JSON root = json_object(); CommentCacheSave(root); LabelCacheSave(root); BookmarkCacheSave(root); FunctionCacheSave(root); LoopCacheSave(root); BpCacheSave(root); WString wdbpath = StringUtils::Utf8ToUtf16(dbpath); if(json_object_size(root)) { FILE* jsonFile = 0; if(_wfopen_s(&jsonFile, wdbpath.c_str(), L"wb")) { dputs("failed to open database file for editing!"); json_decref(root); //free root return; } if(json_dumpf(root, jsonFile, JSON_INDENT(4)) == -1) { dputs("couldn't write JSON to database file..."); json_decref(root); //free root return; } fclose(jsonFile); if(!settingboolget("Engine", "DisableCompression")) LZ4_compress_fileW(wdbpath.c_str(), wdbpath.c_str()); } else //remove database when nothing is in there DeleteFileW(wdbpath.c_str()); dprintf("%ums\n", GetTickCount() - ticks); json_decref(root); //free root }
bool cbInstrMnemonichelp(int argc, char* argv[]) { if(IsArgumentsLessThan(argc, 2)) return false; auto description = MnemonicHelp::getDescription(argv[1]); if(!description.length()) dputs(QT_TRANSLATE_NOOP("DBG", "No description or empty description")); else { auto padding = "================================================================"; auto logText = StringUtils::sprintf("%s%s%s\n", padding, description.c_str(), padding); GuiAddLogMessage(logText.c_str()); } return true; }
int _dvprintf(const char *fmt, va_list ap) { char buf[256]; int err; err = vsnprintf(buf, sizeof(buf), fmt, ap); dputs(ALWAYS, buf); //#ifdef FWDN_V7 #if defined(FWDN_V7) && defined(TCC_FWDN_USE) && !defined(TARGET_TCC8800_EVM) FWDN_PROT_SendMessage(buf); #endif return err; }
void ControlFlowAnalysis::Analyse() { dputs("Starting analysis..."); DWORD ticks = GetTickCount(); BasicBlockStarts(); dprintf("Basic block starts in %ums!\n", GetTickCount() - ticks); ticks = GetTickCount(); BasicBlocks(); dprintf("Basic blocks in %ums!\n", GetTickCount() - ticks); ticks = GetTickCount(); Functions(); dprintf("Functions in %ums!\n", GetTickCount() - ticks); dprintf("Analysis finished!\n"); }
int i2c_write(uint8_t chip, uint32_t addr, int alen, const uint8_t *buffer, int len) { uint8_t cmd; /* Calypso I2C controller doesn't support fancy addressing */ if (alen > 1) return -1; /* FIXME: implement writes longer than fifo size */ if (len > 16) return -1; printd("i2c_write(chip=0x%02u, addr=0x%02u): ", chip, addr) writeb(chip & 0x3f, I2C_REG(DEVICE_REG)); writeb(addr & 0xff, I2C_REG(ADDRESS_REG)); /* we have to tell the controller how many bits we'll put into the fifo ?!? */ writeb(len-1, I2C_REG(CONF_FIFO_REG)); /* fill the FIFO */ while (len--) { uint8_t byte = *buffer++; writeb(byte, I2C_REG(DATA_WR_REG)); printd("%02X ", byte); } dputchar('\n'); /* start the transfer */ cmd = readb(I2C_REG(CMD_REG)); cmd |= I2C_CMD_START; writeb(cmd, I2C_REG(CMD_REG)); /* wait until transfer completes */ while (1) { uint8_t reg = readb(I2C_REG(STATUS_ACTIVITY_REG)); printd("I2C Status: 0x%02x\n", rerg & 0xf); if (!(reg & I2C_STATUS_IDLE)) // 0: idle 1: not idle break; } dputs("I2C transfer completed\n"); return 0; }
int gs_begin_transparency_group(gs_state *pgs, const gs_transparency_group_params_t *ptgp, const gs_rect *pbbox) { gs_pdf14trans_params_t params = { 0 }; #ifdef DEBUG if (gs_debug_c('v')) { static const char *const cs_names[] = { GS_COLOR_SPACE_TYPE_NAMES }; dlprintf5("[v](0x%lx)begin_transparency_group [%g %g %g %g]\n", (ulong)pgs, pbbox->p.x, pbbox->p.y, pbbox->q.x, pbbox->q.y); if (ptgp->ColorSpace) dprintf1(" CS = %s", cs_names[(int)gs_color_space_get_index(ptgp->ColorSpace)]); else dputs(" (no CS)"); dprintf2(" Isolated = %d Knockout = %d\n", ptgp->Isolated, ptgp->Knockout); } #endif /* * Put parameters into a compositor parameter and then call the * create_compositor. This will pass the data to the PDF 1.4 * transparency device. */ params.pdf14_op = PDF14_BEGIN_TRANS_GROUP; params.Isolated = ptgp->Isolated; params.Knockout = ptgp->Knockout; params.image_with_SMask = ptgp->image_with_SMask; params.opacity = pgs->opacity; params.shape = pgs->shape; params.blend_mode = pgs->blend_mode; /* * We are currently doing nothing with the colorspace. Currently * the blending colorspace is based upon the processs color model * of the output device. */ params.bbox = *pbbox; return gs_state_update_pdf14trans(pgs, ¶ms); }
int _dprintf(const char *fmt, ...) { char buf[512]; int err; va_list ap; va_start(ap, fmt); err = vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); dputs(ALWAYS, buf); //#ifdef FWDN_V7 #if defined(FWDN_V7) && defined(TCC_FWDN_USE) && !defined(TARGET_TCC8800_EVM) FWDN_PROT_SendMessage(buf); #endif return err; }
void zipl_load(void) { ScsiMbr *mbr = (void *)sec; LDL_VTOC *vlbl = (void *)sec; /* Grab the MBR */ memset(sec, FREE_SPACE_FILLER, sizeof(sec)); read_block(0, mbr, "Cannot read block 0"); dputs("checking magic\n"); if (magic_match(mbr->magic, ZIPL_MAGIC)) { ipl_scsi(); /* no return */ } /* We have failed to follow the SCSI scheme, so */ sclp_print("Using ECKD scheme.\n"); if (virtio_guessed_disk_nature()) { sclp_print("Using guessed DASD geometry.\n"); virtio_assume_eckd(); } if (magic_match(mbr->magic, IPL1_MAGIC)) { ipl_eckd(ECKD_CDL); /* no return */ } /* LDL/CMS? */ memset(sec, FREE_SPACE_FILLER, sizeof(sec)); read_block(2, vlbl, "Cannot read block 2"); if (magic_match(vlbl->magic, CMS1_MAGIC)) { ipl_eckd(ECKD_CMS); /* no return */ } if (magic_match(vlbl->magic, LNX1_MAGIC)) { ipl_eckd(ECKD_LDL); /* no return */ } virtio_panic("\n* invalid MBR magic *\n"); }
int gx_begin_transparency_group(gs_imager_state * pis, gx_device * pdev, const gs_pdf14trans_params_t * pparams) { gs_transparency_group_params_t tgp = {0}; gs_rect bbox; if (pparams->Background_components != 0 && pparams->Background_components != pdev->color_info.num_components) return_error(gs_error_rangecheck); tgp.Isolated = pparams->Isolated; tgp.Knockout = pparams->Knockout; pis->opacity.alpha = pparams->opacity.alpha; pis->shape.alpha = pparams->shape.alpha; pis->blend_mode = pparams->blend_mode; bbox = pparams->bbox; #ifdef DEBUG if (gs_debug_c('v')) { static const char *const cs_names[] = { GS_COLOR_SPACE_TYPE_NAMES }; dlprintf5("[v](0x%lx)gx_begin_transparency_group [%g %g %g %g]\n", (ulong)pis, bbox.p.x, bbox.p.y, bbox.q.x, bbox.q.y); if (tgp.ColorSpace) dprintf1(" CS = %s", cs_names[(int)gs_color_space_get_index(tgp.ColorSpace)]); else dputs(" (no CS)"); dprintf2(" Isolated = %d Knockout = %d\n", tgp.Isolated, tgp.Knockout); } #endif if (dev_proc(pdev, begin_transparency_group) != 0) return (*dev_proc(pdev, begin_transparency_group)) (pdev, &tgp, &bbox, pis, NULL, NULL); else return 0; }
bool cbInstrPrintStack(int argc, char* argv[]) { duint csp = GetContextDataEx(hActiveThread, UE_CSP); std::vector<CALLSTACKENTRY> callstackVector; stackgetcallstack(csp, callstackVector, false); if(callstackVector.size() == 0) dputs(QT_TRANSLATE_NOOP("DBG", "No call stack.")); else { duint cip = GetContextDataEx(hActiveThread, UE_CIP); #ifdef _WIN64 duint cbp = GetContextDataEx(hActiveThread, UE_RBP); dprintf(QT_TRANSLATE_NOOP("DBG", "%llu call stack frames (RIP = %p , RSP = %p , RBP = %p ):\n"), callstackVector.size(), cip, csp, cbp); #else //x86 duint cbp = GetContextDataEx(hActiveThread, UE_EBP); dprintf(QT_TRANSLATE_NOOP("DBG", "%u call stack frames (EIP = %p , ESP = %p , EBP = %p ):\n"), callstackVector.size(), cip, csp, cbp); #endif //_WIN64 for(auto & i : callstackVector) dprintf_untranslated("%p %s\n", i.addr, i.comment); } return true; }