Xcode 4.1 自定义 DataFormatter 包

标签 xcode macos xcode4 debuggervisualizer

我正在尝试制作自定义数据格式化程序包,以允许我更漂亮地打印 STL 容器等内容。

我已经尽可能地按照在线说明进行操作,但是我似乎无法运行任何捆绑代码。当我的数据格式化程序复制到 时,我所能做的就是让 Xcode 说“Summary Unavailable”/Developer/Library/Xcode/CustomDataViews/

我使用 Xcode“捆绑”模板创建了我的捆绑包,并将其放入我的 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 字段中,它将打印出 字符串 field ;
%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

最佳答案

有 Product > Debug > Shared Libraries - 您应该检查您的包是否已加载。
此外,您似乎可以使用当前正在运行的目标中的任何函数 - 但 _pbxgdb_plugin_function_list 变量此时似乎为 NULL。

关于Xcode 4.1 自定义 DataFormatter 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7018925/

相关文章:

cocoa - 为什么我的观点没有出现?

ios - 将应用程序上传到 iTunes Store 停顿

ios - 现有目标没有 'swift compiler code generation' 部分

ios - 与 iPad 上的通知栏重叠

macos - OSX 上的语音识别

cocoa - 带有建议下拉菜单的 NSTextField

swift - 如何使用 playerViewController 快速循环播放我的视频?

ios - 从现有的 Xcode 项目制作 CocoaPod

objective-c - Mountain Lion 中的条件类别

localization - 本地化字符串 Xcode 4 ...复制 .strings 文件错误验证失败