继上次将mac的clang编译器换成gcc之后,开始折腾VScode。使用Mac的调试器lldb时,踩了很多坑。
第一个,是使用printf函数,Debug Console中没有输出。经过查询后发现,printf里的内容都是在输出缓冲区中,并没有打印出来,解决方法有两个,第一个是输出的内容最后加上\n,第二个是将fflush(stdout);紧跟在printf后面。
这简直不能忍,让我立马产生把调试器换成gdb的冲动,但是网上查询了mac换gdb的教程后发现非常麻烦,无奈只能屈服于lldb的淫威。
第二个,调试时可以输出到外部的终端或是VScode的Debug Console,在launch.json中用"externalConsole": true,或者"externalConsole": false,来控制输出的地方。
而我在输出到Debug Console中的时候,发现输出的内容入如下:

莫名其妙地跟着@\r\n等字符。实在不想看到这些乱七八糟的字符,指向看到我printf中的那些字符。网上查询后发现,只要输出到Debug Console,那么就会跟着@\r\n,如果使用外部的终端则不会出现。

算了,看来只能凑合着用了。
在使用VSCode的LLDB调试器进行Mac开发时遇到的挑战及解决方案,包括printf输出问题与控制台选择。
1301





