Пользовательский пакет DataFormatter для Xcode 4.1 - PullRequest
4 голосов
/ 11 августа 2011

Я пытаюсь создать собственный пакет Data Formatter, чтобы позволить мне печатать такие вещи, как контейнеры STL, более красиво и т. Д.

Я следовал инструкциям в Интернете так же хорошо, как мог, однако я не могу заставить работать любой код bundle . Все, что я могу сделать, это заставить Xcode сказать «Сводка недоступна» , когда мой форматер данных скопирован в / Developer / Library / Xcode / CustomDataViews /

Я создал свой пакет с шаблоном 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 ;

%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 Ответ

1 голос
/ 31 августа 2012

Существует Product> Debug> Shared Libraries - вы должны проверить, загружен ли ваш пакет вообще.Также кажется, что вы можете использовать любые функции из текущей запущенной цели - но переменная _pbxgdb_plugin_function_list кажется NULL в этот момент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...