Thanks to the people who answered my last set of questions about Xcode. I wonder if I could try a few more...
I've been experimenting with all the warnings that gcc can provide - and it's picked up a few lurking bugs in my codebase. I'm a bit confused by the "Nonvirtual Destructor" warning, though. It warns me when _no_ destructor or constructor is defined at all for a class. Is it right to flag that as a problem? The explanation for the warning flag says "warn when a class _declares_ a nonvirtual destructor", which if interpreted literally doesn't seem to cover this case. Is it risky to not declare any destructor at all for a superclass, or is gcc being over-zealous in its warnings?
In the expressions window, I can't work out how to edit existing expressions (if for example I make a mistake in typing them). Is it possible to do that? It seems a pity if not...
Is there any equivalent to the CW "go back" command, which can be used after the "find definition" command, to return to where you came from? I used to find that rather useful. Also, if no text would selected, CW's "find definition" would prompt you to enter a symbol; Xcode doesn't seem to do that. Is there any quick way of looking up a symbol when you don't have its name selected? I'm reduced to typing it in in a source file window, selecting it, choosing "find definition" and then deleting the text afterwards!
Xcode's indexing seems incomplete: sometimes "Find definition" only finds the prototype for a function, for example. Is there a way I can force it to re-index or something? I don't know if it's anything to do with the project having been only recently migrated to Xcode, and hence that I have probably never opened some of the "mature" source files.
When starting to debug a medium-sized project, the debugger window hangs for a while saying "GDB: Running" (after saying "program launched"), at a stage before the target executable has appeared in the dock. It hangs for a good 7 seconds on a 2Ghz G5, with the interval between saying "Debug" and actually seeing the stack and variables for a breakpoint very early on in the program being about 14 seconds. Is this really the best it can do? Is there any way I can reduce this time delay? It's starting to irritate me a little when I'm doing a lot of debugging, because I can't think what could possibly take that much time!
On the subject of time, I know people have moaned about build times before. Can anyone suggest ways of improving them (apart from distributed builds)? My 81-file project takes a total of 2:10 to build the debug variant on a 2Ghz G5, which is exactly the same time CW builds it in on a 300MHz iBook! I feel that can't be right... Admittedly, 25 seconds of the Xcode build is a phase it describes as "Processing 30 of 81", or whatever, which doesn't happen if I compile an individual file, and occurs after the Zerolink stage. I'm not sure that has always been there - was there I compiler option I added which caused that to occur?
I'm trying to keep an open mind about Xcode, and not compare it to CW unfairly, but I can't help feeling in the back of my mind that it's an unfinished product not really fit for serious use. Not wanting to start of a flame war, but what is peoples' impression of how quickly bugs get fixed in Xcode, and whether Apple are committed to making it really good now CW is breathing its last? I'm worried (as I gather some people feel is the case with IB) that "interface" bugs that don't cause incorrect behaviour, but are just tedious to work with and slow down workflows, may never get fixed.
I don't want to sound too negative about Xcode - there are things I think are absolutely brilliant about it - but it would be nice to get the basics right before all the bells and whistles...
Cheers Jonny |