Visual Studio 2022即时窗口C++字符串截断问题求助
解决VS调试MATLAB MEX文件时查看完整矩阵字符串的问题
以下几种方法无需修改代码重新编译,就能在调试时获取完整的矩阵格式化字符串:
即时窗口强制输出完整字符串
先把printMat的结果赋值给临时字符串变量,再用VS调试器的@命令查看:std::string fullMatStr = printMat(yourFloatMatrix); @fullMatStr@命令会强制展开显示完整字符串,不会被即时窗口截断。监视窗口完整显示
在监视窗口添加变量时,在变量名后追加,s(对应窄字符字符串)或,su(宽字符字符串),比如输入fullMatStr,s。如果默认长度不够,可通过工具->选项->调试->常规修改“字符串可视化工具的最大长度”,调整显示上限。用调试输出函数绕过MATLAB拦截
不用std::cout/std::cerr,改用Windows调试API的OutputDebugStringA(ANSI编码)或OutputDebugStringW(宽字符编码),内容会直接输出到VS的“输出窗口”,不会被MATLAB进程拦截。在即时窗口直接调用:OutputDebugStringA(printMat(yourDoubleMatrix).c_str());然后打开VS的
调试->窗口->输出面板查看完整内容。
内容的提问来源于stack exchange,提问作者kabla002
相关产品推荐
相关产品推荐

