Мне нужно отладить программу target-c.
При установке точки останова на функцию main (), я получил:
Reading symbols from /usr/bin/pbcopy...done.
(gdb) break main
Function "main" not defined.
Вызов «start» из ответа на ту же ошибку.
Я подозреваю, что способ ведения дел отличается на макс ос х?
Что эквивалентно программе target c?
Кстати, как прервать функцию выхода ()?
Редактировать: я пытаюсь взломать - [NSApplication run], как предложено Линдси
(gdb) file pbcopy
Reading symbols for shared libraries ........ done
Reading symbols from /usr/bin/pbcopy...done.
(gdb) break -[NSApplication run]
Breakpoint 1 at 0x35a8356
(gdb) run
Starting program: /usr/bin/pbcopy
Reading symbols for shared libraries +++++++.................................................................... done
Breakpoint 1 at 0x95a97356
helo
^C
Program received signal SIGINT, Interrupt.
0x9574eeda in read$UNIX2003 ()
(gdb) bt
#0 0x9574eeda in read$UNIX2003 ()
#1 0x94d4e5b6 in _NSReadFromFileDescriptor ()
#2 0x94d4e4b6 in -[NSConcreteFileHandle readDataOfLength:] ()
#3 0x94d7f2fa in -[NSConcreteFileHandle readDataToEndOfFile] ()
#4 0x00002a11 in ?? ()
#5 0x00002736 in ?? ()
(gdb) info breakpoints
Num Type Disp Enb Address What
1 breakpoint keep y 0x95a97356 <-[NSApplication run]+6>
(gdb)
Это довольно странно, как GDB находит адрес символа, но не ломается в нем ...
Кстати, кажется, GDB меняет адрес точки останова после загрузки динамической библиотеки. Но это не повредит мне, так как я полагаю, что ld нужно сделать переезд.
Видя следы стека, я вижу много ?? что позволяет мне предположить, что обычный способ запуска приложения здесь не используется (большое предположение ...: /)