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
next prev 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