Re: Assuming types for PC

Pedro Alves <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
On 06/10/2013 07:44 PM, Mark Kettenis wrote:
>> Date: Mon, 10 Jun 2013 19:04:08 +0100
>> From: "Maciej W. Rozycki" <[email protected]>
>>
>>  I think it is important to let the user access the full width of the PC 
>> both for writes and -- more importantly -- for reads (as in: why did my 
>> program crash, did it jump to an odd place?), as this lets the user do 
>> with GDB what hardware permits.  There is nothing in hardware that 
>> prevents one from writing an out-of-valid ABI address space value to the 
>> PC at a program's runtime (neither on Linux nor on bare iron) when 
>> executing an n32 program.  I think GDB should not stand in a user's way 
>> and should allow the same to be done via ptrace(2) or RSP.
> 
> Absolutely!

+1.  Hmm, it'd be nice to have this spelled out in the internals manual
(or the wiki?).  I while ago I pointed this out on a review of some
port.  Can't recall which, but in the end I let it go.  Maybe I should
have pushed back stronger.

>>  Overall I think the test is too strict.  If you think the use of "long 
>> long" is unfortunate for the PC, then an artificial type might be created 
>> internally within GDB specifically for the PC, similarly to what we do 
>> e.g. for IEEE 754 data types and floating-point registers in some cases.
> 
> An artificial type like that probably is the way to go.

I agree.  Something like the GDB equivalent of:

  typedef void * ptr64 __attribute ((mode(DI)));

(That worked last time I tried it on x32, probably works on MIPS too.)

-- 
Pedro Alves
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.