Я пытаюсь создать собственный пакет 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