[racket] Curious error messages

From: Marc Burns (m4burns at uwaterloo.ca)
Date: Thu Dec 4 15:23:00 EST 2014

You can run racket under gdb and use a catchpoint to break when a
certain system call is executed:

https://sourceware.org/gdb/onlinedocs/gdb/Set-Catchpoints.html

(make peace with 3m by issuing 'handle SIGSEGV nostop noprint' before
'run')

You could then deliver SIGTERM to the racket process to coerce a
racket-level stack trace.

Marc

On Thu, Dec 04, 2014 at 11:01:23AM -0600, Robby Findler wrote:
> Do you know how to get the racket-level stack at the point strace
> reports a call to open() or write()?
> 
> (I do see this bug occasionally but not reproducibly so setting up
> something on my machine with more debugging output seems likely to be
> productive.)
> 
> Robby
> 
> 
> On Thu, Dec 4, 2014 at 10:34 AM, Sam Tobin-Hochstadt
> <samth at cs.indiana.edu> wrote:
> >
> >
> > On Thu Dec 04 2014 at 9:36:08 AM Robby Findler <robby at eecs.northwestern.edu>
> > wrote:
> >>
> >> On Wed, Dec 3, 2014 at 10:30 PM, Prabhakar Ragde <plragde at uwaterloo.ca>
> >> wrote:
> >> > I'm currently using Racket 6.1. For some time now, when editing Scribble
> >> > files in DrRacket, I've been getting "file has changed on disk" messages
> >> > when trying to save or render - not consistently, just every so often.
> >> > These
> >> > are files I am not editing in anything other than DrRacket. I click
> >> > "ignore"
> >> > and everything works fine, but it is annoying.
> >>
> >> This is definitely a bug somewhere and I've had not a lot of luck
> >> tracking it down.
> >>
> >>
> >> I guess that what's happening is something is actually changing the
> >> file on the disk (perhaps DrRacket itself) and it shouldn't.
> >>
> >> So if you can figure out what feature of DrRacket is making this
> >> happen or verify that the file is actually not changing on the disk,
> >> either of those would be helpful.
> >
> >
> > Here's a thought on tracking it down:
> >
> > * Run DrRacket under strace, looking at the calls to `open()` and `write()`.
> >
> > * Add to relevant places in DrRacket something like this:
> >    (access string F_OK)
> >
> > where `access` is an FFI call to the C library access function, and F_OK is
> > the appropriate constant. Then those messages will appear in the strace
> > output, so you can see what DrRacket is doing right around the time it opens
> > or writes to the relevant file.
> >
> > I got this trick from here:
> > https://people.gnome.org/~federico/news-2006-03.html#09 where it's used to
> > plot timelines (also cool) but it might be useful for debugging in this
> > case.
> >
> > Sam
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users
> 

Posted on the users mailing list.