Redirecting debug output from XCode 4 console to a

2020-02-05 11:11发布

问题:

I'm working on automated testing for iPhone, and I need to redirect output from gdb to a log file. Some searching online turned up the following two lines to run at the command line before beginning debugging:

defaults write com.apple.Xcode PBXGDBDebuggerLogToFile YES
defaults write com.apple.Xcode PBXGDBDebuggerLogFileName <filepath>

...but they don't seem to work for me. I've had problems in the past with functionality from previous versions of Xcode disappearing in newer versions (I'm using XCode 4.0.2). Is that the case here, or is it more likely that I'm just doing something wrong?

Is there another way to tell XCode to send output to a log file? Note that I need to be able to do this from the command line or AppleScript; I can't add anything to the code of the program being run.

回答1:

The domain name of Xcode 4.0 is com.apple.dt.Xcode Also, in Xcode 4.0, you should use the fol defaults write com.apple.dt.Xcode IDEGDBLogToFile /tmp/logs.txt



回答2:

You could write wrapper script around gdb that will redirect everything to some log file.

For example, this is location of gdb executable:

/Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gdb/gdb-arm-apple-darwin

Example wrapper script placed at the same path as original gdb executable:

#!/bin/sh

/Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gdb/gdb-arm-apple-darwin- $* | tee -a $HOME/tmp/xcode-gdb.log 2>&1


标签: xcode gdb