This is the mail archive of the
mailing list for the GDB project.
Re: Dealing with version-specific syntax
- From: André Pönitz <andre dot poenitz at nokia dot com>
- To: "anton at mips dot complang dot tuwien dot ac dot at" <anton at mips dot complang dot tuwien dot ac dot at>
- Cc: gdb at sourceware dot org
- Date: Thu, 13 Jan 2011 08:33:40 +0100
- Subject: Re: Dealing with version-specific syntax
- References: <20110112192750.GA30525@a4.complang.tuwien.ac.at>
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
> 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
disassemble 0 1
will produce either
Dump of assembler code from 0x0 to 0x1:
0x00000000: Cannot access memory at address 0x0
A syntax error in expression, near `1'.