caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Chris Hecker <checker@d6.com>
To: Xavier Leroy <xavier.leroy@inria.fr>, Dmitry Bely <dbely@mail.ru>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] ocamldebug and windows
Date: Tue, 22 Oct 2002 08:56:40 -0700	[thread overview]
Message-ID: <4.3.2.7.2.20021022083244.035ebfb8@mail.d6.com> (raw)
In-Reply-To: <20021022095740.A6289@pauillac.inria.fr>


[Due to the recent s/n and flaming, I feel it necessary to caveat the 
following mail: I'm not trying to flame, these are just questions about 
engineering tradeoffs, and I love ocaml and motherhood and apple pie (or 
tart tatin or whatever is patriotic in France, which actually happens to be 
my favorite country, but I digress!).]

>It is true that time-travel in the presence of I/O is, in general,
>impossible.  (You can't "un-send" the network packets that were
>already sent!)  However, I'd like it to work at least for programs
>that read or write regular files, as in the example above.  Under
>Unix, fork() gets us 90% there -- there is still an issue with the
>reading/writing position being shared (not duplicated) between the
>parent and child process, but we are considering hacks to work around
>this.

Is all of this really worth it when compared to having a cross-platform 
"normal" debugger, especially if that debugger architecture could work on 
native code as well?  In other words, it seems like we're giving up a lot 
for this time-traveling feature.  I've played with it a bit, and it seems 
fine, but the fact that it's central to the debugger architecture makes 
some other things harder (like porting it :).

What was the impetus for doing it?  I'd assume the person who wrote the 
debugger thought it was cool and/or had it as a research project, and so 
that's what got written.  Which is fine, I'm not really complaining, I'm 
just trying to understand it.

I was also surprised that the debugger couldn't eval and link in arbitrary 
ocaml code, especially since a) the debugger works only on bytecode, and b) 
caml already has a toplevel.

Has anyone looked at writing a debugging plugin for gdb or something?  My 
program can't run in bytecode because it's got feedback loops based on 
framerate, so I have to run in native.  It'd be nice to be able to debug 
above the _Unix__fun_1470 level.  It seems like the native code gc frames 
have a fair amount of information in them (values on the stack pointing to 
the heap), and you could augment that info for unboxed values on the stack, 
etc.

I don't know how easy it is to extend gdb, though.

Chris

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


  parent reply	other threads:[~2002-10-22 16:11 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-21 10:43 Dmitry Bely
2002-10-21 13:21 ` Xavier Leroy
2002-10-21 14:17   ` Dmitry Bely
2002-10-22  7:57     ` Xavier Leroy
2002-10-22 11:23       ` Nicolas Cannasse
2002-10-22 15:56       ` Chris Hecker [this message]
2002-10-22 16:42         ` Mattias Waldau
2002-10-22 20:46           ` Pierre Weis
2002-10-23  6:58         ` Alessandro Baretta

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4.3.2.7.2.20021022083244.035ebfb8@mail.d6.com \
    --to=checker@d6.com \
    --cc=caml-list@inria.fr \
    --cc=dbely@mail.ru \
    --cc=xavier.leroy@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).