🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Mark Evans Wed, 21 Aug 1991 23:24
Need help with Epoch crash on HP/Apollo
#1762
Author: Mark Evans
Date: Wed, 21 Aug 1991 23:24
95 lines
4081 bytes
Greetings.

I'm doing sysadmin for an Apollo network and have finally succeeded in 
getting people to use Epoch.  We've been running into a crash, the
traceback for which is shown below:

    Program        //tintagel/usr/local/bin/epoch
    Status         00040004: reference to illegal address (OS/MST manager)
    In routine     "direct_output_for_insert" line 4294967284
    Called from    "command_loop_1" line 616
    Called from    "internal_condition_case" line 4
    Called from    "command_loop_2" line 13
    Called from    "internal_catch" offset 78
    Called from    "command_loop" line 1
    Called from    "Frecursive_edit" line 4294967290
    Called from    "main" line 55
    Called from    "unix_$main" line 114
    Called from    "_start" line 4294967288
    Called from    "PM_$CALL" line 176
    Called from    "pgm_$load_run" line 903
    Called from    "pgm_$invoke_uid_pn" line 1124

We are running Epoch 3.2 on a 400 series Apollo running DomainOS
SR10.3.  Obviously some of the line numbers are bollixed.  The
direct_output_for_insert routine that I built epoch with is shown
below.  I would be most appreciative if someone in the know could tell
me whether this is a known problem.  Are there any patches to the code
below (or elsewhere) that will prevent the crash?  I wish I could tell
you how to reproduce the crash.  We haven't figured that out yet.
    
Thanks!

/* --------------------------------------------------------------------- */
int
direct_output_for_insert (c)
     int c;
{
  register struct display_line *p = WS->phys_line[WS->cursor_y + 1];
#ifndef COMPILER_REGISTER_BUG
  register
#endif /* COMPILER_REGISTER_BUG */
    struct window *w = XWINDOW (selected_window);
#ifndef COMPILER_REGISTER_BUG
  register
#endif /* COMPILER_REGISTER_BUG */
    int hpos = WS->cursor_x;

  /* Give up if about to continue line */
  if (hpos - XFASTINT (w->left) + 1 + 1 >= XFASTINT (w->width)

  /* Avoid losing if cursor is in invisible text off left margin */
      || XINT (w->hscroll) && hpos == XFASTINT (w->left)
    
  /* Give up if cursor outside window (in minibuf, probably) */
      || WS->cursor_y < XFASTINT (w->top)
      || WS->cursor_x >= XFASTINT (w->top) + XFASTINT (w->height)

  /* Give up if cursor not really at cursX, cursY */
      || !display_completed

  /* Give up if w is minibuffer and a message is being displayed there */
      || EQ (selected_window, minibuf_window) && minibuf_message

      /* if shared buffers, then it's going to fail too. */
      || buffer_shared > 1
      )
    return 0;

  p->body[hpos] = c;
#ifdef BUTTON
  p->attrib[hpos] =
    hpos > 0 ? p->attrib[hpos-1] : get_button(bf_cur,point,0,0,0);
#endif
  unchanged_modified = bf_modified;
  beg_unchanged = bf_s1;
  XFASTINT (w->last_point) = point;
  XFASTINT (w->last_point_x) = WS->cursor_x;
  XFASTINT (w->last_modified) = bf_modified;

  reassert_line_highlight (0, WS->cursor_y);
  write_chars (p->body + hpos, 1);
#ifndef CB
  fflush (stdout);
#endif
  ++(WS->cursor_x);
  p->length = max (p->length, WS->cursor_x);
  p->body[p->length] = 0;
  return 1;
}
/* --------------------------------------------------------------------- */
-- 
Mark S. Evans                 Tandem Telecommunications Systems Inc.
Phone: 214-516-6201           850 E. Central Parkway
Fax:   214-516-6801           Plano, TX 75074
Mail:  mse@ttsi.lonestar.org
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads