Jan,

you could put this on the SDCC wiki...

Borut



On 06/10/2010 07:53 PM, Jan Waclawek wrote:
> The SDCC manual chapter 5.1.6 inidicates, that the ddd visual debugger 
> front-end can be used with sdcdb/s51 to debug visually sdcc-x51 programs. 
> However, ddd is *nux-only, as it is bound to X-Window. Recently, X-Windows 
> have been added to Cygwin, and that opened a new opportunity. I'd try to go 
> through all the obstacles and succeeded to run ddd with sdcdb on a Windows 
> Vista SP2 machine. Don't be overly optimistic, though, this is a rather 
> cumbersome and heavyweight path. See also the caution below at item 4.
> Here are the details:
>
> 1. Install SDCC "normally", making sure the appropriate paths to sdcc 
> binaries are set to the command line environment. Create some working 
> directory, write some simple program (I simply copied 
> [SDCC]/device/examples/mcs51/simple/hi.c to my working directory) and compile 
> it with the --debug switch (sdcc --debug hi.c).
>
> 2. Install Cygwin/X. The hints are in 
> http://x.cygwin.com/docs/ug/setup-cygwin-x-installing.html . Basically, run a 
> "normal" Cygwin installation, and make sure you select xorg-server and xinit 
> in the installator (its response to wild clicking is rather slow, be 
> patient). Don't proceed yet with Cygwin, goto item 3. below... :-)
>
> 3. ... in the same installator, select to install also ddd . It will select 
> some required libraries automagically.
>
> 4. Proceed with the installation. CAUTION. Don't even attempt this without 
> access to fast and unlimited internet connection and enough free disk space. 
> For me, it downloaded more than 1.3GByte data, and the resulting cygwin 
> directory is almost 5Gbytes. It surely can be tuned up: the installator pulls 
> a lot of unnecessary applications and their libraries and kin; but I simply 
> cannot tell what is needed from it and what is not.
>
> 5. Wait. For me, it took another two hours after the download until the 
> installator did everything it wanted to do. Don't be surprised if it installs 
> some garbage icons on the desktop as it was for me :-( but at least the Start 
> menu contained (among others) the Cygwin-X directory.
>
> 6. From Start menu, run Cygwin-X. Wait. It creates an "X" icon in the right 
> icon tray, and, after more waiting, it opens a window with the shell. At this 
> point, some rudimentary experience with *nux or at least with command line 
> tools is needed. Note, that the root directory inside Cygwin is equal to Win 
> directory where Cygwin was installed, typically C:\cygwin. So we are now in 
> our $HOME directory, which in Cygwin is /home/[YOUR_NAME], in Win it is 
> C:\[cygwin]\home\[YOUR_NAME]. To break out from cygwin to the Win directory 
> system, cygwin provides a /cygdrive "directory" containing all the Win 
> drives. So, a C:\Programs\SDCC Win directory is /cygdrive/c/Programs/SDCC in 
> Cygwin. Try to go up and down on the directory structure in Cygwin using the 
> cd and ls commands to get a grip of what is happening.
>
> 7. As sdcdb runs as a Win application and ddd as a Cygwin one, they see the 
> directory structure differently. This different notion of paths makes 
> unpractical to try to run if from anywhere else than from the working 
> directory, where we have all the sources and files resulting from compilation 
> at one place with no need to go elsewhere in the directory structure (to 
> understand this took me quite some time and experimentation... ;-) ). So, if 
> your working directory from item 1 was say C:\Work, in the Cygwin/X window do 
> cd /cygdrive/c/Work.
>
> 8. A happy moment:
> ddd -debugger "sdcdb hi"
> ("hi" here is the name of your program but with no file extension - mine was 
> hi.c)
> Wait. Wait. Wait.
> Voila!
>
> 9. It has its limitations, of course. Source code and disassembly display and 
> breakpoints and run/step work (mostly). Could display registers but not 
> memory. The fonts are ugly and some windows can't be resized so you need to 
> scroll up/down or left/right to see everything. Don't know how to redirect 
> IO. Some commands make the whole stuff crash; the aftermath is that you need 
> to inspect in TaskManager within processes if s51 (and sdcdb itself) are not 
> still running and if yes, kill them manually.
>
> First steps, but maybe there will be more.
>
> Jan Waclawek
>
>
>
>
>
> ------------------------------------------------------------------------------
> ThinkGeek and WIRED's GeekDad team up for the Ultimate
> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
> lucky parental unit.  See the prize list and enter to win:
> http://p.sf.net/sfu/thinkgeek-promo
> _______________________________________________
> Sdcc-user mailing list
> Sdcc-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/sdcc-user
>
>    


------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to