Xcode 4.1 自定义 DataFormatter bundle

4
我正在尝试创建一个自定义数据格式化程序包,以便更漂亮地打印STL容器等内容。
我已经按照网上的说明尽可能地操作了,但是似乎无法运行任何“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

我很想看到这个问题的答案! - Lars Bilke
1个回答

1

有一个产品 > 调试 > 共享库 - 你应该检查你的捆绑包是否被加载。 此外,似乎你可以使用当前运行目标中的任何函数 - 但此时 _pbxgdb_plugin_function_list 变量似乎为空。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接