我正在尝试创建一个自定义数据格式化程序包,以便更漂亮地打印STL容器等内容。
我已经按照网上的说明尽可能地操作了,但是似乎无法运行任何“bundle”代码。当我的数据格式化程序被复制到/Developer/Library/Xcode/CustomDataViews/时,Xcode只能显示“摘要不可用”。
我使用Xcode“bundle”模板创建了我的程序包,并将其放置在我的C++文件中。
然而,如果我将其放在这里: (是的,我将其链接到一个 Hi *对象,而不是一个 Hi 对象。)
有人有调试调试器的技巧吗?:P
我已经按照网上的说明尽可能地操作了,但是似乎无法运行任何“bundle”代码。当我的数据格式化程序被复制到/Developer/Library/Xcode/CustomDataViews/时,Xcode只能显示“摘要不可用”。
我使用Xcode“bundle”模板创建了我的程序包,并将其放置在我的C++文件中。
#include "/Developer/Library/Xcode/PrivatePlugIns/DebuggerFoundation.ideplugin/Contents/Headers/DataFormatterPlugin.h"
#include "Hi.h"
_pbxgdb_plugin_function_list *_pbxgdb_plugin_functions = NULL;
char * printHi( Hi * obj, int Id) {
char * result = (char*)(_pbxgdb_plugin_functions->allocate(Id,100));
sprintf( result, "%s", obj->string );
return result;
}
当Hi对象是微不足道的时候:
#include <stdio.h>
#include <string.h>
class Hi {
public:
Hi( char * str ) {
string = new char[strlen(str)+1];
strcpy( string, str );
}
~Hi() {
delete( string );
}
void print( void ) {
printf( "%s", string );
}
char * string;
};
我知道我的问题不在于我的.plist文件,因为如果我把以下内容放入StringSummary字段中,它将打印出字符串字段;
%string%:s
然而,如果我将其放在这里: (是的,我将其链接到一个 Hi *对象,而不是一个 Hi 对象。)
{(char *)printHi($VAR, $ID)}:s
我只能得到未提供摘要。我正在使用一个简单的项目进行调试:
#include "hi.h"
void foo( Hi * obj ) {
obj->print();
}
int main( void ) {
Hi h( "test!" );
foo( &h );
return 1;
}
有人有调试调试器的技巧吗?:P