Отладка программы OSX на Snow Leopard, которая была построена на Lion - PullRequest
4 голосов
/ 22 октября 2011

У меня есть программа, которую я создаю, используя автоматический подсчет ссылок и Lion SDK. Эта программа не работает должным образом в Snow Leopard (одно представление не будет загружено, а открытие документа приводит к зависанию программы), поэтому я хочу отладить его там. Но поскольку я не могу скомпилировать его под Snow Leopard, я понятия не имею, как это сделать.

Так, как я могу получить символы отладки в gdb или я могу отладить эту вещь в XCode - возможно, есть какой-нибудь удаленный способ или что-то в этом роде?

Ответы [ 2 ]

1 голос
/ 22 октября 2011

Вы можете либо отладить удаленно с помощью gdbserver:

snow-leopard$ gdbserver :10000 /path/to/exe
lion$ gdb /path/to/exe
(gdb) target remote snow-leopard:10000

Более простой способ - скопировать весь исходный каталог и каталог сборки в snow-leopard и локально отладить с помощью GDB.Даже если вы не строили там, GDB все равно сможет найти все, что ему нужно.

0 голосов
/ 29 марта 2013

К сожалению, мое исследование показывает, что компилятор "g ++" на Snow Leopard больше не помещает символы в связанный модуль, которые имеют какое-либо значение для "gdb". Единственными найденными символами являются выдуманные символы, созданные для того, чтобы сделать ВСЕ символы уникальными. Вот краткий пример:

`_Z5DoSVCi', function, 0x151dd
`_Z7SEBTrapv', function, 0x1383c

Те же самые символы в Тигре были такими:

`_Z5DoSVCi'  `DoSVC(int)', FUNCTION, 0x1394c
`_Z7SEBTrapv'  `SEBTrap()', FUNCTION, 0xf994

«Подпись» - это то, что «gdb» необходимо для решения таких проблем, как: break emsvc.c: DoSVC Кроме того, у вас все еще должны быть все «объектные колоды», например, emsvc.o, потому что «g ++» Snow Leopard, по-видимому, больше не несет символы в связанном модуле.

Я привел скомпилированный модуль "g ++", связанный с Tiger (на базе Intel), к Snow Leopard без объектных колод, и "gdb" смог справиться с этим отлично, включая установку точек останова. Очевидно, "g ++" или компоновщик не производит надлежащие модули для "gdb" на Snow Leopard.

...