Topic : 10.6 Debug Compiling Problem

This question is answered. "Helpful" answers available: 2 . "Solved" answers available: 1 .



            Permlink
            Replies : 4 - Pages : 1 - Last Post : Oct 15, 2009 5:07 PM by: CraigularB
Paulo Rodriguez

Posts: 2
From: Davis, CA
Registered: Sep 18, 2009
10.6 Debug Compiling Problem
Posted: Sep 18, 2009 1:21 PM
 

After installing Xcode 3.2, the 10.6 debugger gives some strange results.

I created a new project using: Application->Command Line Tool -> C++ stdc++

Pasted in the code from cplusplus.com for istringstream.

Here is the simple code :

// using istringstream constructors.
#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main () {

int n,val;
string stringvalues;

stringvalues = "125 320 512 750 333";
istringstream iss (stringvalues,istringstream::in);

for (n=0; n<5; n++)
{
iss >> val;
cout << val*2 << endl;
}

return 0;
}

Console Results for: 10.6|Debug|X86_64 or i386:
0
0
0
0
0

If set to :
10.5|Release or Debug| x86_64 or i386
10.6|Release| x86_64 or i386
Console Results:

250
640
1024
1500
666

Compiling with 10.6 Debug seems to have a problem. I tried doing a clean install of SL 10.6 and clean install of Xcode 3.2, but get same results.

Any suggestions?

17" Macbook pro (late 2007)      

etresoft


Posts: 6,320
Registered: Nov 22, 2005
Re: 10.6 Debug Compiling Problem
Posted: Sep 18, 2009 4:21 PM   in response to: Paulo Rodriguez
 

Double-click on your Xcode target, select the Build tab, scroll down to "GCC 4.2 - Preprocessing" and delete what is in "Preprocessor Macros". At first, these values just seemed to cause some harmless warning messages, but apparently they also change how software runs (or doesn't).

MacBook   Mac OS X (10.5.7)   2.0 Ghz/4GB Ram/200 HD  
etresoft


Posts: 6,320
Registered: Nov 22, 2005
Re: 10.6 Debug Compiling Problem
Posted: Sep 18, 2009 4:50 PM   in response to: Paulo Rodriguez
 

Someone in another thread has already filed a bug about this, but your example was so sweet that I just couldn't resist filing another. I edited your code just a bit to simply and clearly show the bug:
#include <iostream>
#include <sstream>
#include <string>
 
#ifdef _GLIBCXX_DEBUG
#define _GLIBCXX_DEBUG_DEFINED "1"
#else
#define _GLIBCXX_DEBUG_DEFINED "<undefined>"
#endif
 
int main() 
  {	
  std::string svalue("42");
  std::istringstream in(svalue);
 
  int value;
  
  in >> value;
  
  std::cout << "Original value was: " << svalue << std::endl;
  
  std::cout 
    << "With _GLIBCXX_DEBUG=" 
    << _GLIBCXX_DEBUG_DEFINED 
    << " value is " 
    << value << std::endl;
 
  return 0;
  }

Try running with default debug and release settings. Then try debug bug without these macros.

My bug will certainly be rejected as a duplicate.

I am beginning to take a perverse pleasure in filing 10.6 bugs.

But this is a very important plot point - in 10.6 you must remove the macros "_GLIBCXX_DEBUG=1 _GLIBCXX_DEBUG_PEDANTIC=1".

MacBook   Mac OS X (10.5.7)   2.0 Ghz/4GB Ram/200 HD  
Paulo Rodriguez

Posts: 2
From: Davis, CA
Registered: Sep 18, 2009
Re: 10.6 Debug Compiling Problem
Posted: Sep 18, 2009 4:58 PM   in response to: Paulo Rodriguez
 

Thanks. That fixed it.

17" Macbook pro (late 2007)      
CraigularB

Posts: 1
From: Marquette, MI
Registered: Jun 23, 2009
Re: 10.6 Debug Compiling Problem
Posted: Oct 15, 2009 5:07 PM   in response to: etresoft
 

I just wanted to say thanks to this post and this thread in general, I found this when I ran into this exact error while working on a school project. So, thanks for the fix!

Macbook Pro 4,1   Mac OS X (10.6.1)   iPhone 3GS OS 3.0