Xcode 4.1自定义DataFormatter包

时间:2011-08-10 22:57:11

标签: xcode macos xcode4 debuggervisualizer

我正在尝试制作一个自定义数据格式化程序包,以允许我更精确地打印STL容器之类的东西等。

我已经在网上按照说明操作,但是我似乎无法运行任何捆绑代码。当我的数据格式化程序被复制到 / 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

1 个答案:

答案 0 :(得分:1)

有产品&gt;调试&gt;共享库 - 您应该检查您的包是否已加载。 此外,您似乎可以使用当前运行目标的任何函数 - 但是_pbxgdb_plugin_function_list变量在此时似乎为NULL。