List Info

Thread: Re: Turning off printing of char pointer contents




Re: Turning off printing of char pointer contents
country flaguser name
United States
2007-05-31 17:48:01
"Ray Bejjani" <ray.bejjanigmail.com> writes:
> I'm trying to turn off printing the contents of char
pointers. I'm use
> GDB to debug an embedded app remotely. In some
instances the pointers
> are left uninitialised and can point to sections of
memory that cause
> system crashes when accessed (or they cause external
hardware to
> change state when read). I am using DDD on top of GDB
but I can
> reproduce the issue with GDB as well. GDB seems to
treat C strings in
> a special manner, attempting to print the contents
until it sees an
> null terminator or hit the limit set by the "print
elements" setting.
> My system crashes when this happens.
> Unfortunately, doing a set print elements 0 is
interpreted as no
> limit. Are there any other settings I can use to
suppress this
> feature? In particular, I would like it to treat char
(or unsigned
> char) pointers like it does other pointers where it
doesn't attempt to
> dereference them. I would still like to be able to
display/print the
> contents of strings when needed but only on demand.
Failing that,
> where in the code should I look to try and force this
to not happen?

Have you looked at "Memory region attributes" in
the GDB manual?  You
can define memory regions, and then use 'set mem
inaccessible-by-default' to tell GDB not to touch memory
regions you
haven't defined.

Re: Turning off printing of char pointer contents
user name
2007-05-31 20:32:07
Thanks! That should do it. I can set regions, but I cant set
(or even
show) the inaccessible-by-default setting . It's in the
manual, and
I've tried it with 6.5 and 6.6 (in case it was new) but it
simply
doesn't know what it is. I don't know if it matters, but
I'm
cross-debugging a coldfire, so maybe it isn't supported (of
course, I
cant seem to set it in my x86 one either).
I get:
(gdb) set mem inaccessible-by-default on
No symbol "mem" in current context.

Thanks again, sorry for being quite useless.

On 5/31/07, Jim Blandy <jimbcodesourcery.com>
wrote:
>
> "Ray Bejjani" <ray.bejjanigmail.com> writes:
> > I'm trying to turn off printing the contents of
char pointers. I'm use
> > GDB to debug an embedded app remotely. In some
instances the pointers
> > are left uninitialised and can point to sections
of memory that cause
> > system crashes when accessed (or they cause
external hardware to
> > change state when read). I am using DDD on top of
GDB but I can
> > reproduce the issue with GDB as well. GDB seems to
treat C strings in
> > a special manner, attempting to print the contents
until it sees an
> > null terminator or hit the limit set by the
"print elements" setting.
> > My system crashes when this happens.
> > Unfortunately, doing a set print elements 0 is
interpreted as no
> > limit. Are there any other settings I can use to
suppress this
> > feature? In particular, I would like it to treat
char (or unsigned
> > char) pointers like it does other pointers where
it doesn't attempt to
> > dereference them. I would still like to be able to
display/print the
> > contents of strings when needed but only on
demand. Failing that,
> > where in the code should I look to try and force
this to not happen?
>
> Have you looked at "Memory region attributes"
in the GDB manual?  You
> can define memory regions, and then use 'set mem
> inaccessible-by-default' to tell GDB not to touch
memory regions you
> haven't defined.
>

[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )