This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Targets with non-byte-addressable memory


Dave Korn wrote:


>> Does anybody has experience of porting gdb to a target where memory is
>> not byte-addressable. That is, if you read 0x80000007 you get 4 bytes and
>> if you read 0x80000008 you get another 4 bytes.
>> 
>> The source has TARGET_CHAR_BIT macro, but no target under "config" makes
>> use of them which makes me suspect that setting it won't do any good. 
> 
>   Changing TARGET_CHAR_BIT is the wrong way to go.  Basically, IIUIC, you
> shouldn't need to do anything at all for native debugging, and for remote
> debugging, you'll have to take care of it in the stub/server.


Hi Dave,
in my case it's remote debugging. Unfortunately, I don't know what
stub/server can do. Just a couple of cases.

1. When printing memory, say "x/2w 0x80000007", gdb first sends
   "fetch 4 bytes at 0x80000007" request and then sends
   "fetch 4 bytes at 0x8000000b" request. The address in second request
   should be 0x80000008 and I don't see any way how server can affect this.
   It's asked for 4 bytes, it returns 4 bytes and that's all.

2. Likewise, when printing arrays, gdb increments address by size of array
element in bytes, not in words. Again, server returns exactly what's asked
for.

I've temporary "fixed" those problems by sticking "/4" in code but that's no
good. (And note that I had to change two different code parts to handles
case 1 and case 2).

Maybe, there's some way that stub/server can handle this that I don't know? 
Or there's some other configuration variable? And what does TARGET_CHAR_BIT
do?

Thanks,
Volodya
   




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]