Вы можете использовать GDB для этого. Следующие команды GDB полезны:
set log file <filename>
set logging on
... do interesting stuff ...
set logging off
В этом разделе «делать интересные вещи» будет записан текстовый файл.
Если вы хотите стать действительно модным и иметь фиксированный набор команд / переменных, которые вы хотите сбросить, вы можете создать функцию и вставить ее в $HOME/.gdbinit
. Затем перейдите к точке останова и просто введите dumplog
(если использовать приведенный ниже пример) в приглашении gdb.
# Example that just does some random stuff
define dumplog
set logging file foo.txt
b main
c
set logging on
po var1
po var2
set logging off
end
Другой подход, который я только что узнал, заключается в выдаче следующего из терминала. Преимущество в том, что оно не требует ручного вмешательства, но я только что попробовал его, и вы получили в этом файле немного лишнего мусора.
defaults write com.apple.Xcode PBXGDBDebuggerLogToFile YES
defaults write com.apple.Xcode PBXGDBDebuggerLogFileName <filename>