🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

2 total messages Started by Michael Elizabeth Chastain Fri, 17 May 2002 17:15
Re: c++ strings with gdb??
#1948
Author: Michael Elizabeth Chastain
Date: Fri, 17 May 2002 17:15
22 lines
1635 bytes
Hi Eric,

Presumably, your string actually has that many characters in it.

I would suggest looking directly at the memory:

  (gdb) x/c 0x24340
  ... then hit the "return" key to see successive characters

Your C++ string class doesn't have any field named "length" so it
probably uses null-terminated characters.

> For refereence to my first post, this string should
> have only "<", without those trailling chars.

Well, either gdb is lying, or we are mis-interpreting its output,
or your string really does all those characters in it.  I recommend
trying some different things, such as different data display commands
in gdb, and perhaps adding some printf statements to the program
(i know, icky) to see the data independently of gdb.

Michael C
Re: c++ strings with gdb??
#1976
Author: Dave
Date: Wed, 22 May 2002 04:15
41 lines
2718 bytes
Hi,

Thanks a lot for your reply. 

I have tried the examine the memory. I got '<' when using "x/c
0x24340" but got "<A HREF=\"http:/" when using "x/s 0x24340". I tried
to use "cout" and "cerr" to print the content(s) of "substring" and I
got expected '<'. I met this kind of problem again and again in my
different programs. Some persons in other groups responed to my
message saying they also had this problem when debug the code I
posted.

I suspect the string does not end with null char. So, gdb overshots
when it tries to print out the contents of the string. Not sure
though.

Really appreciate your replies.

mec@shout.net (Michael Elizabeth Chastain) wrote in message news:<200205171715.g4HHF5o11057@duracef.shout.net>...
> Hi Eric,
> 
> Presumably, your string actually has that many characters in it.
> 
> I would suggest looking directly at the memory:
> 
>   (gdb) x/c 0x24340
>   ... then hit the "return" key to see successive characters
> 
> Your C++ string class doesn't have any field named "length" so it
> probably uses null-terminated characters.
> 
> > For refereence to my first post, this string should
> > have only "<", without those trailling chars.
> 
> Well, either gdb is lying, or we are mis-interpreting its output,
> or your string really does all those characters in it.  I recommend
> trying some different things, such as different data display commands
> in gdb, and perhaps adding some printf statements to the program
> (i know, icky) to see the data independently of gdb.
> 
> Michael C
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads