• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag
 

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Debugger fails to see a NSString object that NSLog can see & print.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Debugger fails to see a NSString object that NSLog can see & print.


  • Subject: Re: Debugger fails to see a NSString object that NSLog can see & print.
  • From: Fritz Anderson <email@hidden>
  • Date: Wed, 10 Sep 2008 10:43:24 -0500


On 10 Sep 2008, at 9:59 AM, email@hidden wrote:

Environment: Xcode 3.1 (Core: #1100)

Greetings:

Scenario:
1) I'm transmitting data (XML) to a server and got a response.
2) The debugger can see the serverResponse as shown below.
3) But I'm unable to view the actual server data received; although NSLog does see it.


Why?
...
Here's a snippet of the source code:
..
// -----------------------
// 4) Get Synchronous Data:
serverData = [NSURLConnection sendSynchronousRequest:theRequest
returningResponse:&serverResponse
error:&myError];


// -----------------------
// 5) Convert Synchronous Data into Human-Readable String (Unicode 8) format:
NSMutableString *serverDataString = [[NSMutableString alloc] initWithData:serverData encoding:NSUTF8StringEncoding];

Apparently you have a breakpoint here, and you inspect some variables -- but it appears from your description, you do NOT inspect serverDataString. You seem to be saying that you "continue" through the NSLog (which prints the expected value), and you try to "po" serverDataString at some _later_ point. Am I reading you right?


NSLog(@"{PG_Transmission} serverDataString= %@",serverDataString); // ok.

So the debugger retrieves a zero memory address for a NSString object
that NSLog can print/store.  Why?

A question I'd ask is whether you've turned on optimization. In optimized code, gcc is free to re-use storage for a variable after its last use in a function. So the address that had been the value of serverDataString gets overwritten with NULL, for another variable, once serverDataString is past its useful life. Turning optimization off, such as by using the Debug configuration, will prevent this.


Am I on the right track?

	— F

 --
Fritz Anderson -- Xcode 3 Unleashed: Now Available -- http://x3u.manoverboard.org/

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: Debugger fails to see a NSString object that NSLog can see & print.
      • From: email@hidden
References: 
 >Debugger fails to see a NSString object that NSLog can see & print. (From: email@hidden)

  • Prev by Date: Re: Porting projects from Windows
  • Next by Date: Re: breakpoints ignored while running unit tests! Why?
  • Previous by thread: Debugger fails to see a NSString object that NSLog can see & print.
  • Next by thread: Re: Debugger fails to see a NSString object that NSLog can see & print.
  • Index(es):
    • Date
    • Thread