Dealing with version-specific syntax
André Pönitz
andre.poenitz@nokia.com
Thu Jan 13 07:30:00 GMT 2011
On Wednesday 12 January 2011 20:27:50 ext Anton Ertl wrote:
> What I am trying to do: Get the disassembly for a specific address
> range. And I try to do it with gdb. The problem here ist that as far
> as I can tell, up to gdb-7.0 the way to do this is
>
> disassemble 0x404E22 0x404E40
>
> Starting from gdb-7.1, this syntax is invalid, and instead we have to
> use
>
> disassemble 0x404E22,0x404E40
>
> Unfortunately, this syntax does something else in gdb-7.0 and earlier
> (it disassembles whole functions).
>
> Is there a good way inside gdb for deciding which syntax to use?
> Ideally, I would test if the space-separated syntax works, and use it
> if it does, and otherwise use the comma-syntax. Or I might test for
> the gdb version and use the syntax depending on that.
That's unfortunately not necessarily a safe approach as gdb version strings
can be virtually anything. Some distributors get really creative there ;-}
> If there is no easy way, we will probably take the approach of testing
> the gdb version outside of gdb.
You could decide what syntax to use in the same session before loading
a file:
disassemble 0 1
will produce either
Dump of assembler code from 0x0 to 0x1:
0x00000000: Cannot access memory at address 0x0
or
A syntax error in expression, near `1'.
Andre'
More information about the Gdb
mailing list