首页 > 技术文章 > cocos2dx Mac平台 打印长字符串,游戏卡死

dzqdzq 2019-08-31 18:40 原文

1,打开了输出控制台,输出卡死的解决方案:

打开控制台: game -console enable

关闭控制台: game -console false

修改文件 ConsoleWindowController.m

#define SKIP_LINES_COUNT    300
#define MAX_LINE_LEN        409600
#define MAX_LINES_COUNT     20000

MAX_LINE_LEN 宏的含义是 一行日志最多MAX_LINE_LEN个字符.   如果要输出的字符串长度超过了MAX_LINE_LEN, 则进行截取,并以 ... 代替

SKIP_LINES_COUNT 宏的含义是  从SKIP_LINES_COUNT行后, 对超过MAX_LINE_LEN字符串进行截取.

也就是说在第300行之前, 你给什么,我就是输出什么. 300行之后,你给了一个长字符串,将进行截取后输出

MAX_LINES_COUNT 宏的含义是 输出控制台最多能容纳的行数.  在这里是2万行,  如果达到了2万行, 则最之前的信息会删除,

之后的输出始终保证输出控制台只有2万行.

如果打印不全就修改MAX_LINE_LEN的值

2, 如果没有打开控制台, 使用luaide工具进行调试输出, 如果出现卡死,那么

修改文件 CCConsole.cpp中log 方法:

注释log中的所有内容

 

 

这样所有输出都在vscode中, 并且不会出现卡死了.      启动参数中 需要加入 -console false

如果不加-console, 则默认开启输出控制台,  那么就不需要注释log中的内容, 直接就可以输出.不会卡死.

 

推荐阅读