这是问题
我正在恢复 Xcode 5 中的一些旧代码(ARC 之前、Xcode 4、GDB),虽然一切都编译并开始正常,但在打印 C++ 字符串对象的内容时,调试器的输出日志出现问题。
#define DebugPrintf(args...) x_Printf(__FILE__,__LINE__,__PRETTY_FUNCTION__,args);
void x_Printf(const char *file, int lineNumber, const char *funcName, const char *format,...)
{
va_list ap;
va_start (ap, format);
printf("%s (%s:%d)",funcName,file,lineNumber);
printf(format,ap);
va_end (ap);
}
void MyFunc()
{
string name;
…
DebugPrintf("Loaded entity %s\n",name.c_str());
}
结果是:
void MyFunc() (File.cpp:52)Loaded entity \373*
${\370\325\377\277:{\373*
Ģ\247\300\242\247`6*
然而,检查名称 C++ 字符串对象显示它清楚地包含“MainMenu”作为内容。
有谁知道发生了什么?