Reputation: 2259
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.
Upvotes: 3
Views: 4743
Reputation: 31
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
Upvotes: 3
Reputation: 51
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
Upvotes: 4