[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Full-disclosure] Step-by-step instructions for debugging Cisco IOS using gdb
- To: Smiler S <smiler808@xxxxxxxxxxxxxx>
- Subject: Re: [Full-disclosure] Step-by-step instructions for debugging Cisco IOS using gdb
- From: Andrew Farmer <andfarm@xxxxxxxxx>
- Date: Sat, 16 Aug 2008 13:24:20 -0700
On 15 Aug 08, at 11:20, Smiler S wrote:
> From: Andy Davis
> <iosftpexploit_at_googlemail.com<iosftpexploit_at_googlemail.com?
> Subject=Re:%20Step-by-step%20instructions%20for%20debugging%20Cisco
> %20IOS%20using%20gdb>>
>
> Date: Tue, 12 Aug 2008 22:01:37 +0100
>
>> Congratulations you are now debugging IOS ;-)
>> One unusual feature, which I have yet to explain is that when the
>> registers are displayed they are all offset by 1 e.g:
>
> If a vector variable is stored in a register, gcc writes debug
> information
> telling gdb which register the variable is stored in. This mapping is
> changed between gcc2 & gcc3. Since there isn't anything in the debug
> output
> to distinguish code compiled by gcc3 from code compiled by gcc2,
> there is no
> way for gdb to know the right map. gdb supports the gcc3 map.
>
> If vector code is compiled by gcc2 as in the case of IOS, then the
> register
> assignment will be off by 1.
This isn't vector code, though - the whole register map is off. I'm
not particularly familiar with IOS, but my guess is the debugging
protocol is a little off from what GDB expects.
_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/