Re: Reading memory from inferior at given pointer

Weller <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
On Tue, Apr 23, 2013 at 12:26:54PM -0600, Tom Tromey wrote:
> >>>>> ">" == Weller  <[email protected]> writes:
> 
> >> Which allows me to read the long and double values just fine. But my
> >> hurdle is reading the char *. Which no matter which function I try
> >> always results in a bad address from which I can't read the correct
> >> string. I tried different functions mentioned in 9.3 of "GDB Internal"
> >> and also looked around in different language implementations. But I am
> >> clearly doing something wrong here.
> 
> >> Which would be the correct way to read from this memory area from the
> >> inferior process? Any help would be appreciated.
> 
> Are you trying to see the value of the pointer, or the pointed-to
> characters?
> 
> To get the pointer I would use the various "value" APIs (see
> gdb/value.h) to extract the field from the value returned by
> call_function_by_hand.
> 
> For the characters, you can use read_string.
> 
> Tom

Thanks for taking the time to answer. My aim was to use
the actual string found at the given address in the target.

I know implemented it like this, which works fine so far:
target_read_string((CORE_ADDR)(data->data.s), &read, data->data_len, &errnop);

But I am not to sure about the cast to CORE_ADDR. Is there a prefered
way to get the CORE_ADDR so it e.g. doesn't break on different
architectures.

Lennart
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.