ddd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem with DDD


From: apgaylard
Subject: Re: Problem with DDD
Date: Wed, 20 Aug 2003 08:10:34 GMT

> Greetings,
>    I seem to be having a problem with DDD, and I'm a bit lost at this point.
> Please note, I did not setup this environment, I'm just the "clean up" guy.
> This is for an embedded project, using some cross development tools and JTAG
> emulators.  Here's my setup:
> 
>     Host:  Linux Machine, RedHat 9.  I use WinAXE (from LABF) on my PC to
> telnet and log into the Linux Machine (an AMD Duron based PC).  I run
> various X-windows here, and we've been using KATE as our Editor.   We have a
> cross compiler that was built, it's a 2.95.3 PowerPC version.  The target
> CPU is a Motorola MPC8260 (which is based upon the PPC 603e core).  
>    TARGET:  CPU = MPC8260, with some Flash and SRAM.  The current rev
> hardware has been "hacked" severely, due to some initial design "mistakes".
> We currently use an EST (now WindRiver) Vision ICE II as the primary means
> for debugging.  This is a LAN enabled ICE, we telnet into it and can
> download code into the SRAM for execution.  This CPU does NOT have a
> "console port" for communication, is NOT capable of running a monitor (yet)
> and will NOT be running any sort of OS, due to timing constraints.  
>     DEBUG:
>     DDD Version 3.3.1, as delivered on the Red Hat Version 9 SW
>     GDB is Version 4.18, for host= i686-pc-linux-gnu with target =
> powerpc-linux-gnu
> 
> PROBLEM:
>    I have been able to get DDD to launch, and "attach" it to the Cross-GDB
> debugger.  I can load code, and start/stop execution.  Setting breakpoints
> and seeing code halt works.  Single step, and Next step seem to be working
> find.  My problem is with displaying data.  If I enable local variables, I
> see these displayed in the "graph" window.  However, when I select a "global
> variable" and try to display it, I don't get see it appear in the graph
> window, as I would expect.  I see a rather lengthy message in the gdb
> console window (things like language c: 4 elements, 12 bytes each, etc.).
> When I set a "display" for this global variable, when I step, yes, I see it
> in the gdb console window, updated as it changes.  Print also dumps the
> output to the console window as well.  I did try to print a structure and
> was able to get this output in the console window, complete with structure
> member names.  However, there seems to be some missing "link" between the
> debugger and DDD.  What am I missing here?  Some configuration item?  Some
> Switch?  
>    
>    My suspicion is that the Cross Debugger is either a) incapable of working
> with DDD; b) was built without certain "hooks" to allow it to work with DDD.
> 
> 
>     This next phase of our software "integration" will require us to view
> some rather complex structures, buffer pools, linked lists, and very big and
> complicated structures.  So, having a GUI based debugger is, IMHO, a MUST.
> (I paid my dues doing ASM level non-symbolic debugging on DSP's 12 years
> ago, thank you).  
> 
>    Since I don't have root access, building a new cross version based upon
> the 5.3 release may not be possible.  
> 
>    Any insights you could provide would be greatly appreciated.  
> Thank You for your Time and Expertise, it is GREATLY APPRECIATED!
> 
> Regards,
> Stephen Beckwith
> Systems Engineer/Software Architect/Developer
> L-3 Communications GNS

Stephen,

Congratulations, you win my "best problem report of the decade" award.
Sorry I didn't respond earlier; I've been out of the country for a week.

Your analysis appears to be correct.  DDD works by reading the output
produced by GDB; there are no special hooks.  DDD should indeed work
with GDB-4.18 (and indeed I used to use 3.3.1 and 4.18 together with
no problems).  

Since you can print structures but not display them, the problem lies
with DDD.  Therefore there's no good reason why your setup shouldn't
work.

Clearly, the output of GDB-4.18 isn't quite what DDD expects; perhaps
because it is built as a cross-debugger.  The best way to see what's
going on is to use "ddd --trace", and compare the output for the cases:

(a) printing a local structure
(b) printing a global structure
(c) displaying a local structure
(d) displaying a global structure

If possible, do the same on a system where DDD and GDB work correctly.

This information should clarify what differs, and therefore explain
why DDD isn't parsing your cross-debugger's output (i.e.: what's the
difference between GDB's output in the case which works, and your
case?).

Give that a spin, and see if it helps...


---------------------------------------------
This message was sent using M-Web Airmail - JUST LIKE THAT
M-Web: S.A.'s most trusted and reliable Internet Service Provider.
http://airmail.mweb.co.za/






reply via email to

[Prev in Thread] Current Thread [Next in Thread]