From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cagney To: Jim Blandy Cc: Michael Snyder , gdb-patches@sources.redhat.com Subject: Re: [RFC/RFA] gdb extension for Harvard architectures Date: Tue, 02 Oct 2001 17:16:00 -0000 Message-id: <3BBA58BC.5060108@cygnus.com> References: <3BB4D843.A92818B9@cygnus.com> <3BB512A9.6050801@cygnus.com> <3BB5195F.6050603@cygnus.com> <3BBA2DC9.5060500@cygnus.com> X-SW-Source: 2001-10/msg00042.html >> Any way, consider the intent of someone entering a sequence like: >> >> (gdb) x/w foo >> 0x0 >> (gdb) x/i foo >> nop >> (gdb) print/x *(int*)foo >> 0xdeadbeef >> >> vs >> (gdb) print/x *(int*)foo >> 0x0 >> >> and where should this go: >> >> (gdb) set *(int*)foo = 0xdeadbeef >> >> This mysterious address switching strikes me as wierd. > > > It *is* weird, but I think it's an intrinsic weirdness of Harvard > architectures that it would be a disservice to conceal. > > Seriously, you can't protect the user from the oddities of the chip > they're working on. And I think we shouldn't: GDB's job is to help > people observe the behavior of the program, and tools for observation > must be careful not to edit reality too much. It's perfectly okay to > tell someone, "You don't understand your architecture; do it this > way." (Rather, the manual should say this, and we should point them > at it.) We're also expected to make GDB user friendly. In the above, if the user wanted to convert the function pointer into a data pointer then they would enter: (@data int *)foo and who knows what the result would be. Andrew