Проблема в том, что вы не объявили ничего типа MyClass
в вашем источнике целей. Если ваш MyClass
предназначен только для статических методов, вы можете попробовать что-то вроде
#if DEBUG //gdb Static Method Fix
MyClass *mc = nil; //This makes the symbol available
[mc class]; //supress unused warning
#endif
Я предполагаю, что не объявляя тип класса где-либо в вашем коде, он был оптимизирован из символов поиска. Из моего тестирования этот вызов даже не нужно вызывать, чтобы он работал. Если вы посмотрите на printcmd.c из gdb line # 1250, то это то место, откуда печатается ошибка, и это происходит после вызова lookup_minimal_symbol. И хотя GDB не может найти символ в контексте, все же нормально использовать только статические методы MyClass
в вашем исходном коде без исправления выше.