Objective-C プログラムをデバッグする必要があります。main() function にブレークポイントを設定すると、次のようになります。
Reading symbols from /usr/bin/pbcopy...done.
(gdb) break main
Function "main" not defined.
返信から「開始」を呼び出すと、同じエラーが返されます。max os x ではやり方が違うのではないでしょうか?
目的のCプログラムと同等のものは何ですか?
ところで、exit() 関数を中断する方法は?
編集: Lyndsey によって提案された -[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はどのようにしてシンボルのアドレスを見つけるのですか?しかし、私は ld が再配置を行う必要があると思うので、それは私を傷つけません。スタックトレースを見ると、たくさんあります?? ここでは、アプリケーションをトリガーする通常の方法は使用しないと仮定します (?? 大きな仮定 ...:/)