unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#28700: 25.2; Cannot kill Eshell buffer
@ 2017-10-04  9:57 Live System User
  2017-10-04 11:56 ` Noam Postavsky
  2017-10-05  8:09 ` martin rudalics
  0 siblings, 2 replies; 19+ messages in thread
From: Live System User @ 2017-10-04  9:57 UTC (permalink / raw)
  To: 28700


Hi,

        I cannot kill an Eshell buffer.

        When I attekpt to kill it either by `(kill-buffer)`
        "C-x k" or `(save-buffers-kill-terminal)` "C-x C-c"
        I get the error:

              run-hooks: Text is read-only

        `kill-buffer-hook` is:
        
kill-buffer-hook is a variable defined in ‘files.el’.
Its value is (t eshell-kill-buffer-function)
Local in buffer *eshell*; global value is 
(tramp-delete-temp-file-function uniquify-kill-buffer-function vc-kill-buffer-hook)

         Thank.



In GNU Emacs 25.2.1 (x86_64-redhat-linux-gnu, GTK+ Version 3.20.10)
 of 2017-05-02 built on buildvm-17.phx2.fedoraproject.org
Windowing system distributor 'Fedora Project', version 11.0.11803000
Configured using:
 'configure --build=x86_64-redhat-linux-gnu
 --host=x86_64-redhat-linux-gnu --program-prefix=
 --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
 --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
 --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
 --libexecdir=/usr/libexec --localstatedir=/var
 --sharedstatedir=/var/lib --mandir=/usr/share/man
 --infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-png
 --with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3
 --with-gpm=no --with-xwidgets --with-modules
 build_alias=x86_64-redhat-linux-gnu host_alias=x86_64-redhat-linux-gnu
 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g -pipe -Wall -Werror=format-security
 -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong
 --param=ssp-buffer-size=4 -grecord-gcc-switches
 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic'
 LDFLAGS=-Wl,-z,relro
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GCONF GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 MODULES XWIDGETS

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Buffer Menu

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
250 2.1.0 Ok
250 2.1.5 Ok
354 End data with <CR><LF>.<CR><LF>
Sending email 
Sending email done
250 2.0.0 Ok: queued as 1A2883800008D
221 2.0.0 Bye
Sending...done

Load-path shadows:
None found.

Features:
(misearch multi-isearch rect mailalias smtpmail face-remap shadow
emacsbug sendmail shr-color color shr dom subr-x browse-url debug
nnagent nnml pp gnus-dup sort gnus-cite smiley ansi-color mail-extr qp
gnus-async gnus-bcklg gnus-ml disp-table cursor-sensor nndraft nnmh
nndoc mm-archive jka-compr timezone url-http url-gw url-cache url-auth
url-handlers utf-7 rfc2104 nnfolder network-stream nsm starttls
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg nntp
gnus-cache epa-file epa derived nnreddit mm-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
url-util url-parse auth-source cl-seq eieio eieio-core cl-macs url-vars
json map seq byte-opt bytecomp byte-compile cl-extra cconv gnus-art
mm-uu mml2015 mm-view mml-smime smime dig mailcap cl gv sieve sieve-mode
sieve-manage nnir gnus-sum gnus-group gnus-undo gnus-start gnus-cloud
nnimap nnmail mail-source tls gnutls utf7 netrc parse-time gnus-spec
gnus-int gnus-range message dired format-spec rfc822 mml mml-sec
password-cache epg epg-config mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader
gnus-win gnus gnus-ems wid-edit nnoo nnheader gnus-util mm-util help-fns
help-mode easymenu cl-loaddefs pcase cl-lib mail-prsvr mail-utils
time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset
image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese charscript case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote dbusbind inotify dynamic-setting
system-font-setting font-render-setting xwidget-internal move-toolbar
gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 256618 98808)
 (symbols 48 63384 57)
 (miscs 40 296 557)
 (strings 32 92176 94506)
 (string-bytes 1 2792305)
 (vectors 16 29987)
 (vector-slots 8 1097868 133031)
 (floats 8 588 1436)
 (intervals 56 6441 153)
 (buffers 976 88)
 (heap 1024 71182 572023))





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#28700: 25.2; Cannot kill Eshell buffer
  2017-10-04  9:57 bug#28700: 25.2; Cannot kill Eshell buffer Live System User
@ 2017-10-04 11:56 ` Noam Postavsky
  2017-10-04 14:13   ` Live System User
  2017-10-05  8:09 ` martin rudalics
  1 sibling, 1 reply; 19+ messages in thread
From: Noam Postavsky @ 2017-10-04 11:56 UTC (permalink / raw)
  To: Live System User; +Cc: 28700

Live System User <nyc4bos@aol.com> writes:

> Hi,
>
>         I cannot kill an Eshell buffer.
>
>         When I attekpt to kill it either by `(kill-buffer)`
>         "C-x k" or `(save-buffers-kill-terminal)` "C-x C-c"
>         I get the error:
>
>               run-hooks: Text is read-only
>
>         `kill-buffer-hook` is:
>         
> kill-buffer-hook is a variable defined in ‘files.el’.
> Its value is (t eshell-kill-buffer-function)
> Local in buffer *eshell*; global value is 
> (tramp-delete-temp-file-function uniquify-kill-buffer-function vc-kill-buffer-hook)

Can you get a backtrace if you M-x toggle-debug-on-error RET?





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#28700: 25.2; Cannot kill Eshell buffer
  2017-10-04 11:56 ` Noam Postavsky
@ 2017-10-04 14:13   ` Live System User
  2017-10-04 14:19     ` Noam Postavsky
  0 siblings, 1 reply; 19+ messages in thread
From: Live System User @ 2017-10-04 14:13 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 28700

Noam Postavsky <npostavs@users.sourceforge.net> writes:

> Live System User <nyc4bos@aol.com> writes:
>
>> Hi,
>>
>>         I cannot kill an Eshell buffer.
>>
>>         When I attekpt to kill it either by `(kill-buffer)`
>>         "C-x k" or `(save-buffers-kill-terminal)` "C-x C-c"
>>         I get the error:
>>
>>               run-hooks: Text is read-only
>>
>>         `kill-buffer-hook` is:
>>         
>> kill-buffer-hook is a variable defined in ‘files.el’.
>> Its value is (t eshell-kill-buffer-function)
>> Local in buffer *eshell*; global value is 
>> (tramp-delete-temp-file-function uniquify-kill-buffer-function vc-kill-buffer-hook)
>
> Can you get a backtrace if you M-x toggle-debug-on-error RET?

         Ufortunately no;

debug-on-error is a variable defined in ‘C source code’.
Its value is t
Original value was nil


         Only that *Message* buffer imfomation.

         Thanks.





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#28700: 25.2; Cannot kill Eshell buffer
  2017-10-04 14:13   ` Live System User
@ 2017-10-04 14:19     ` Noam Postavsky
  2017-10-04 15:21       ` Live System User
  0 siblings, 1 reply; 19+ messages in thread
From: Noam Postavsky @ 2017-10-04 14:19 UTC (permalink / raw)
  To: Live System User; +Cc: 28700

On Wed, Oct 4, 2017 at 10:13 AM, Live System User <nyc4bos@aol.com> wrote:
>> Can you get a backtrace if you M-x toggle-debug-on-error RET?
>
>          Ufortunately no;
>
> debug-on-error is a variable defined in ‘C source code’.
> Its value is t
> Original value was nil
>
>
>          Only that *Message* buffer imfomation.

Does setting debug-on-message set to "Text is read-only" help?
Or with debug-on-signal set to t? (You might have to continue ('c' in
the *Backtrace* buffer) if you hit some unrelated errors that are
normally suppressed)





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#28700: 25.2; Cannot kill Eshell buffer
  2017-10-04 14:19     ` Noam Postavsky
@ 2017-10-04 15:21       ` Live System User
  2017-10-04 16:42         ` Noam Postavsky
  0 siblings, 1 reply; 19+ messages in thread
From: Live System User @ 2017-10-04 15:21 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 28700

Noam Postavsky <npostavs@users.sourceforge.net> writes:

> On Wed, Oct 4, 2017 at 10:13 AM, Live System User <nyc4bos@aol.com> wrote:
>>> Can you get a backtrace if you M-x toggle-debug-on-error RET?
>>
>>          Ufortunately no;
>>
>> debug-on-error is a variable defined in ‘C source code’.
>> Its value is t
>> Original value was nil
>>
>>
>>          Only that *Message* buffer imfomation.
>
> Does setting debug-on-message set to "Text is read-only" help?
> Or with debug-on-signal set to t? (You might have to continue ('c' in
> the *Backtrace* buffer) if you hit some unrelated errors that are
> normally suppressed)

  Unfortunately, no ro both:
  
debug-on-message is a variable defined in ‘C source code’.
Its value is "Text is read-only"


debug-on-signal is a variable defined in ‘C source code’.
Its value is t
Original value was nil


         Only the "run-hooks: Text is read-only" message
         in the *Message* buffer appears.

         Thanks.







^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#28700: 25.2; Cannot kill Eshell buffer
  2017-10-04 15:21       ` Live System User
@ 2017-10-04 16:42         ` Noam Postavsky
  2017-10-04 18:27           ` Live System User
  0 siblings, 1 reply; 19+ messages in thread
From: Noam Postavsky @ 2017-10-04 16:42 UTC (permalink / raw)
  To: Live System User; +Cc: 28700

On Wed, Oct 4, 2017 at 11:21 AM, Live System User <nyc4bos@aol.com> wrote:
>
>   Unfortunately, no ro both:
>
> debug-on-message is a variable defined in ‘C source code’.
> Its value is "Text is read-only"
>
>
> debug-on-signal is a variable defined in ‘C source code’.
> Its value is t
> Original value was nil
>
>
>          Only the "run-hooks: Text is read-only" message
>          in the *Message* buffer appears.

Hmm, can you eval each function in the hook value individually and see
which gets the error then?

M-: (tramp-delete-temp-file-function)
M-: (uniquify-kill-buffer-function)
etc.





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#28700: 25.2; Cannot kill Eshell buffer
  2017-10-04 16:42         ` Noam Postavsky
@ 2017-10-04 18:27           ` Live System User
  2017-10-04 18:32             ` Noam Postavsky
  0 siblings, 1 reply; 19+ messages in thread
From: Live System User @ 2017-10-04 18:27 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 28700

Noam Postavsky <npostavs@users.sourceforge.net> writes:

> On Wed, Oct 4, 2017 at 11:21 AM, Live System User <nyc4bos@aol.com> wrote:
>>
>>   Unfortunately, no ro both:
>>
>> debug-on-message is a variable defined in ‘C source code’.
>> Its value is "Text is read-only"
>>
>>
>> debug-on-signal is a variable defined in ‘C source code’.
>> Its value is t
>> Original value was nil
>>
>>
>>          Only the "run-hooks: Text is read-only" message
>>          in the *Message* buffer appears.
>
> Hmm, can you eval each function in the hook value individually and see
> which gets the error then?
>
> M-: (tramp-delete-temp-file-function)
> M-: (uniquify-kill-buffer-function)
> etc.

        They all evaluate to nil

.





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#28700: 25.2; Cannot kill Eshell buffer
  2017-10-04 18:27           ` Live System User
@ 2017-10-04 18:32             ` Noam Postavsky
  2017-10-04 19:50               ` Live System User
  0 siblings, 1 reply; 19+ messages in thread
From: Noam Postavsky @ 2017-10-04 18:32 UTC (permalink / raw)
  To: Live System User; +Cc: 28700

On Wed, Oct 4, 2017 at 2:27 PM, Live System User <nyc4bos@aol.com> wrote:
>
>         They all evaluate to nil

Hmm, so maybe the run-hooks is a red herring. Could you instrument
kill-buffer with edebug, and step through to find where the error
happens?





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#28700: 25.2; Cannot kill Eshell buffer
  2017-10-04 18:32             ` Noam Postavsky
@ 2017-10-04 19:50               ` Live System User
  2017-10-04 19:56                 ` Noam Postavsky
  0 siblings, 1 reply; 19+ messages in thread
From: Live System User @ 2017-10-04 19:50 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 28700

Noam Postavsky <npostavs@users.sourceforge.net> writes:

> On Wed, Oct 4, 2017 at 2:27 PM, Live System User <nyc4bos@aol.com> wrote:
>>
>>         They all evaluate to nil
>
> Hmm, so maybe the run-hooks is a red herring. Could you instrument
> kill-buffer with edebug, and step through to find where the error
> happens?

  I don't know how to invoke or use Edebug.

  Can you give me step-by-step instructions?

  BTW, is it possible to Edebug `kill-buffer` ?


kill-buffer is an interactive built-in function in ‘C source code’.

It is bound to C-x k.



   Thanks.






^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#28700: 25.2; Cannot kill Eshell buffer
  2017-10-04 19:50               ` Live System User
@ 2017-10-04 19:56                 ` Noam Postavsky
  2017-10-04 22:12                   ` Live System User
  0 siblings, 1 reply; 19+ messages in thread
From: Noam Postavsky @ 2017-10-04 19:56 UTC (permalink / raw)
  To: Live System User; +Cc: 28700

On Wed, Oct 4, 2017 at 3:50 PM, Live System User <nyc4bos@aol.com> wrote:
>   Can you give me step-by-step instructions?
>
>   BTW, is it possible to Edebug `kill-buffer` ?
>
>
> kill-buffer is an interactive built-in function in ‘C source code’.

Oops, sorry, it is indeed not possible to edebug C code. I don't
suppose you've built your emacs with debug info so you could step with
gdb?

Do you know how to reproduce this situation starting from 'emacs -Q',
or is it a one-off fluke?





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#28700: 25.2; Cannot kill Eshell buffer
  2017-10-04 19:56                 ` Noam Postavsky
@ 2017-10-04 22:12                   ` Live System User
  2017-10-04 23:48                     ` Noam Postavsky
  0 siblings, 1 reply; 19+ messages in thread
From: Live System User @ 2017-10-04 22:12 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 28700

Noam Postavsky <npostavs@users.sourceforge.net> writes:

> On Wed, Oct 4, 2017 at 3:50 PM, Live System User <nyc4bos@aol.com> wrote:
>>   Can you give me step-by-step instructions?
>>
>>   BTW, is it possible to Edebug `kill-buffer` ?
>>
>>
>> kill-buffer is an interactive built-in function in ‘C source code’.
>
> Oops, sorry, it is indeed not possible to edebug C code. I don't
> suppose you've built your emacs with debug info so you could step with
> gdb?

  It's built by Fedora (RedHat).  I have debugging info but I belive
  the emacs binary might be stripped, if that matters.
  
>
> Do you know how to reproduce this situation starting from 'emacs -Q',
> or is it a one-off fluke?

  I dont know how to reproduce this with or without 'emacs -Q' but
  it has happened to me periodically so I decided to finally
  report it

  I'll leave the sessuon around as long as I can.

  I hope someone can help me to debug it.

  Thanks.






^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#28700: 25.2; Cannot kill Eshell buffer
  2017-10-04 22:12                   ` Live System User
@ 2017-10-04 23:48                     ` Noam Postavsky
  2017-10-15 19:09                       ` Live System User
  2017-10-15 19:29                       ` Live System User
  0 siblings, 2 replies; 19+ messages in thread
From: Noam Postavsky @ 2017-10-04 23:48 UTC (permalink / raw)
  To: Live System User; +Cc: 28700

Live System User <nyc4bos@aol.com> writes:

>   It's built by Fedora (RedHat).  I have debugging info but I belive
>   the emacs binary might be stripped, if that matters.

Hmm, you will need gdb, emacs debug info and probably the emacs sources
as well.

This link explains how to get the debug info:
https://fedoraproject.org/wiki/StackTraces#What_are_debuginfo_rpms.2C_and_how_do_I_get_them.3F

I'm not sure how to get sources under Redhat based distros.

Also get .gdbinit from
http://git.savannah.gnu.org/cgit/emacs.git/tree/src/.gdbinit?h=heads/emacs-25.3

>   I dont know how to reproduce this with or without 'emacs -Q' but
>   it has happened to me periodically so I decided to finally
>   report it
>
>   I'll leave the sessuon around as long as I can.

After you have installed the debugging symbols and gdb, attach gdb to
the running Emacs by running

    gdb -p xxxx

Where xxxx is Emacs' pid (a number).  Find that out by running 'pgrep -a
emacs'.  Then at the (gdb) prompt, type

    source .gdbinit
    break text_read_only
    continue

Then try to kill the buffer.  Hopefully the breakpoint will be hit and
emacs becomes frozen.  At the (gdb) prompt, type

    bt






^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#28700: 25.2; Cannot kill Eshell buffer
  2017-10-04  9:57 bug#28700: 25.2; Cannot kill Eshell buffer Live System User
  2017-10-04 11:56 ` Noam Postavsky
@ 2017-10-05  8:09 ` martin rudalics
  1 sibling, 0 replies; 19+ messages in thread
From: martin rudalics @ 2017-10-05  8:09 UTC (permalink / raw)
  To: Live System User, 28700

 >                run-hooks: Text is read-only
 >
 >          `kill-buffer-hook` is:
 >
 > kill-buffer-hook is a variable defined in ‘files.el’.
 > Its value is (t eshell-kill-buffer-function)
 > Local in buffer *eshell*; global value is
 > (tramp-delete-temp-file-function uniquify-kill-buffer-function vc-kill-buffer-hook)

Set ‘kill-buffer-hook’ to nil when this happens to find out whether some
local binding creates any difficulties.  If this is not the case,
gradually re-add each of the elements above to see which one causes the
problem.

martin






^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#28700: 25.2; Cannot kill Eshell buffer
  2017-10-04 23:48                     ` Noam Postavsky
@ 2017-10-15 19:09                       ` Live System User
  2017-10-15 19:48                         ` Noam Postavsky
  2017-10-15 19:29                       ` Live System User
  1 sibling, 1 reply; 19+ messages in thread
From: Live System User @ 2017-10-15 19:09 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 28700

[-- Attachment #1: Type: text/plain, Size: 1341 bytes --]

Noam Postavsky <npostavs@users.sourceforge.net> writes:

> Live System User <nyc4bos@aol.com> writes:
>
>>   It's built by Fedora (RedHat).  I have debugging info but I belive
>>   the emacs binary might be stripped, if that matters.
>
> Hmm, you will need gdb, emacs debug info and probably the emacs sources
> as well.
>
> This link explains how to get the debug info:
> https://fedoraproject.org/wiki/StackTraces#What_are_debuginfo_rpms.2C_and_how_do_I_get_them.3F
>
> I'm not sure how to get sources under Redhat based distros.
>
> Also get .gdbinit from
> http://git.savannah.gnu.org/cgit/emacs.git/tree/src/.gdbinit?h=heads/emacs-25.3
>
>>   I dont know how to reproduce this with or without 'emacs -Q' but
>>   it has happened to me periodically so I decided to finally
>>   report it
>>
>>   I'll leave the sessuon around as long as I can.
>
> After you have installed the debugging symbols and gdb, attach gdb to
> the running Emacs by running
>
>     gdb -p xxxx
>
> Where xxxx is Emacs' pid (a number).  Find that out by running 'pgrep -a
> emacs'.  Then at the (gdb) prompt, type
>
>     source .gdbinit
>     break text_read_only
>     continue
>
> Then try to kill the buffer.  Hopefully the breakpoint will be hit and
> emacs becomes frozen.  At the (gdb) prompt, type
>
>     bt

      Here is some GDB info.

      Thanks.


[-- Attachment #2: GDB BT info --]
[-- Type: text/plain, Size: 6736 bytes --]

(gdb) c
Continuing.

Thread 1 "emacs" hit Breakpoint 4, text_read_only (
    propval=propval@entry=XIL(0xb010)) at ../../src/textprop.c:71
71	  if (STRINGP (propval))
(gdb) bt
#0  text_read_only (propval=propval@entry=XIL(0xb010))
    at ../../src/textprop.c:71
#1  0x00000000005bd8da in verify_interval_modification (buf=<optimized out>, 
    start=start@entry=3209, end=end@entry=3209) at ../../src/textprop.c:2192
#2  0x0000000000519353 in prepare_to_modify_buffer_1 (start=start@entry=3209, 
    end=end@entry=3209, preserve_ptr=preserve_ptr@entry=0x0)
    at ../../src/insdel.c:1837
#3  0x0000000000519791 in prepare_to_modify_buffer (start=3209, end=3209, 
    preserve_ptr=preserve_ptr@entry=0x0) at ../../src/insdel.c:1878
#4  0x00000000005199b1 in insert_1_both (
    string=string@entry=0x7ffd5642bca0 "\n\037\344\004", 
    nchars=nchars@entry=1, nbytes=nbytes@entry=1, inherit=inherit@entry=false, 
    prepare=prepare@entry=true, before_markers=before_markers@entry=false)
    at ../../src/insdel.c:801
#5  0x0000000000519ff1 in insert_1_both (before_markers=false, prepare=true, 
    inherit=false, nbytes=1, nchars=1, string=0x7ffd5642bca0 "\n\037\344\004")
    at ../../src/insdel.c:585
#6  insert (string=0x7ffd5642bca0 "\n\037\344\004", nbytes=1)
    at ../../src/insdel.c:582
#7  0x00000000005582fc in general_insert_function (
    insert_func=0x51a000 <insert>, 
    insert_from_string_func=0x51a2f0 <insert_from_string>, 
    inherit=inherit@entry=false, nargs=2, args=args@entry=0x7ffd5642bd40)
---Type <return> to continue, or q <return> to quit---
   ../src/editfns.c:2492
#8  0x00000000005583cf in Finsert (nargs=<optimized out>, 
    args=args@entry=0x7ffd5642bd40) at ../../src/editfns.c:2532
#9  0x000000000059fed4 in exec_byte_code (bytestr=<optimized out>, 
    vector=<optimized out>, maxdepth=<optimized out>, 
    args_template=<optimized out>, nargs=nargs@entry=0, args=<optimized out>, 
    args@entry=0x45800b4) at ../../src/bytecode.c:1517
#10 0x0000000000566416 in funcall_lambda (fun=XIL(0x7ffd5642c090), 
    nargs=nargs@entry=0, arg_vector=0x45800b4, arg_vector@entry=0x7ffd5642bf38)
    at ../../src/eval.c:2863
#11 0x00000000005666db in Ffuncall (nargs=1, args=0x7ffd5642bf30)
    at ../../src/eval.c:2760
#12 0x0000000000566939 in funcall_nil (nargs=<optimized out>, 
    args=<optimized out>) at ../../src/eval.c:2338
#13 0x0000000000564a55 in run_hook_with_args (nargs=1, args=0x7ffd5642bf30, 
    funcall=0x566930 <funcall_nil>) at ../../src/eval.c:2515
#14 0x0000000000564c33 in run_hook_with_args (funcall=<optimized out>, 
    args=<optimized out>, nargs=<optimized out>) at ../../src/eval.c:2361
#15 Frun_hook_with_args (args=0x7ffd5642bf30, nargs=1) at ../../src/eval.c:2380
#16 run_hook (hook=<optimized out>) at ../../src/eval.c:2528
#17 Frun_hooks (nargs=1, args=0x7ffd5642c020) at ../../src/eval.c:2362
#18 0x00000000005667e9 in Ffuncall (nargs=2, args=args@entry=0x7ffd5642c018)
    at ../../src/eval.c:2679
---Type <return> to continue, or q <return> to quit---
#19 0x000000000059f173 in exec_byte_code (bytestr=<optimized out>, 
    vector=<optimized out>, maxdepth=<optimized out>, 
    args_template=<optimized out>, nargs=nargs@entry=0, args=<optimized out>, 
    args@entry=0x343c164) at ../../src/bytecode.c:880
#20 0x0000000000566416 in funcall_lambda (fun=XIL(0x7ffd5642c6f0), 
    nargs=nargs@entry=0, arg_vector=0x343c164, arg_vector@entry=0x7ffd5642c200)
    at ../../src/eval.c:2863
#21 0x00000000005666db in Ffuncall (nargs=1, args=0x7ffd5642c1f8)
    at ../../src/eval.c:2760
#22 0x0000000000566939 in funcall_nil (nargs=<optimized out>, 
    args=<optimized out>) at ../../src/eval.c:2338
#23 0x0000000000564a55 in run_hook_with_args (nargs=1, args=0x7ffd5642c1f8, 
    funcall=0x566930 <funcall_nil>) at ../../src/eval.c:2515
#24 0x0000000000565259 in run_hook_with_args (funcall=<optimized out>, 
    args=<optimized out>, nargs=<optimized out>) at ../../src/eval.c:2465
#25 Frun_hook_with_args (args=0x7ffd5642c1f8, nargs=1) at ../../src/eval.c:2380
#26 run_hook (hook=<optimized out>, hook@entry=XIL(0x7530))
    at ../../src/eval.c:2528
#27 0x0000000000511aa1 in Fkill_buffer (buffer_or_name=<optimized out>)
    at ../../src/buffer.c:1680
#28 0x00000000005668e0 in Ffuncall (nargs=nargs@entry=2, 
    args=args@entry=0x7ffd5642c3f8) at ../../src/eval.c:2699
#29 0x00000000005622da in Ffuncall_interactively (nargs=2, args=0x7ffd5642c3f8)
---Type <return> to continue, or q <return> to quit---
    at ../../src/callint.c:252
#30 0x00000000005667e9 in Ffuncall (nargs=nargs@entry=3, 
    args=args@entry=0x7ffd5642c3f0) at ../../src/eval.c:2679
#31 0x0000000000562cb6 in Fcall_interactively (function=<optimized out>, 
    record_flag=<optimized out>, keys=<optimized out>)
    at ../../src/callint.c:843
#32 0x00000000005668c6 in Ffuncall (nargs=4, args=args@entry=0x7ffd5642c658)
    at ../../src/eval.c:2706
#33 0x000000000059f173 in exec_byte_code (bytestr=<optimized out>, 
    vector=<optimized out>, maxdepth=<optimized out>, 
    args_template=<optimized out>, nargs=nargs@entry=1, args=<optimized out>, 
    args@entry=0x9394d4 <pure+895540>) at ../../src/bytecode.c:880
#34 0x0000000000566416 in funcall_lambda (fun=XIL(0), nargs=nargs@entry=1, 
    arg_vector=0x9394d4 <pure+895540>, arg_vector@entry=0x7ffd5642c808)
    at ../../src/eval.c:2863
#35 0x00000000005666db in Ffuncall (nargs=nargs@entry=2, 
    args=args@entry=0x7ffd5642c800) at ../../src/eval.c:2760
#36 0x00000000005669da in call1 (fn=fn@entry=XIL(0x3a50), arg1=<optimized out>)
    at ../../src/eval.c:2558
#37 0x0000000000500461 in command_loop_1 () at ../../src/keyboard.c:1484
#38 0x0000000000565002 in internal_condition_case (
    bfun=bfun@entry=0x500040 <command_loop_1>, 
    handlers=handlers@entry=XIL(0x4b00), hfun=hfun@entry=0x4f68c0 <cmd_error>)
---Type <return> to continue, or q <return> to quit---
    at ../../src/eval.c:1315
#39 0x00000000004f1cf4 in command_loop_2 (ignore=ignore@entry=XIL(0))
    at ../../src/keyboard.c:1112
#40 0x0000000000564fa3 in internal_catch (tag=tag@entry=XIL(0xb580), 
    func=func@entry=0x4f1cd0 <command_loop_2>, arg=arg@entry=XIL(0))
    at ../../src/eval.c:1080
#41 0x00000000004f1cb0 in command_loop () at ../../src/keyboard.c:1091
#42 0x00000000004f64b7 in recursive_edit_1 () at ../../src/keyboard.c:697
#43 0x00000000004f6808 in Frecursive_edit () at ../../src/keyboard.c:768
#44 0x000000000041a032 in main (argc=1, argv=0x7ffd5642cc08)
    at ../../src/emacs.c:1629

Lisp Backtrace:
"eshell-write-history" (0x5642bf38)
"run-hooks" (0x5642c020)
"eshell-kill-buffer-function" (0x5642c200)
"kill-buffer" (0x5642c400)
"funcall-interactively" (0x5642c3f8)
"call-interactively" (0x5642c660)
"command-execute" (0x5642c808)
(gdb) 


[-- Attachment #3: GDB src info --]
[-- Type: text/plain, Size: 6736 bytes --]

(gdb) c
Continuing.

Thread 1 "emacs" hit Breakpoint 4, text_read_only (
    propval=propval@entry=XIL(0xb010)) at ../../src/textprop.c:71
71	  if (STRINGP (propval))
(gdb) bt
#0  text_read_only (propval=propval@entry=XIL(0xb010))
    at ../../src/textprop.c:71
#1  0x00000000005bd8da in verify_interval_modification (buf=<optimized out>, 
    start=start@entry=3209, end=end@entry=3209) at ../../src/textprop.c:2192
#2  0x0000000000519353 in prepare_to_modify_buffer_1 (start=start@entry=3209, 
    end=end@entry=3209, preserve_ptr=preserve_ptr@entry=0x0)
    at ../../src/insdel.c:1837
#3  0x0000000000519791 in prepare_to_modify_buffer (start=3209, end=3209, 
    preserve_ptr=preserve_ptr@entry=0x0) at ../../src/insdel.c:1878
#4  0x00000000005199b1 in insert_1_both (
    string=string@entry=0x7ffd5642bca0 "\n\037\344\004", 
    nchars=nchars@entry=1, nbytes=nbytes@entry=1, inherit=inherit@entry=false, 
    prepare=prepare@entry=true, before_markers=before_markers@entry=false)
    at ../../src/insdel.c:801
#5  0x0000000000519ff1 in insert_1_both (before_markers=false, prepare=true, 
    inherit=false, nbytes=1, nchars=1, string=0x7ffd5642bca0 "\n\037\344\004")
    at ../../src/insdel.c:585
#6  insert (string=0x7ffd5642bca0 "\n\037\344\004", nbytes=1)
    at ../../src/insdel.c:582
#7  0x00000000005582fc in general_insert_function (
    insert_func=0x51a000 <insert>, 
    insert_from_string_func=0x51a2f0 <insert_from_string>, 
    inherit=inherit@entry=false, nargs=2, args=args@entry=0x7ffd5642bd40)
---Type <return> to continue, or q <return> to quit---
   ../src/editfns.c:2492
#8  0x00000000005583cf in Finsert (nargs=<optimized out>, 
    args=args@entry=0x7ffd5642bd40) at ../../src/editfns.c:2532
#9  0x000000000059fed4 in exec_byte_code (bytestr=<optimized out>, 
    vector=<optimized out>, maxdepth=<optimized out>, 
    args_template=<optimized out>, nargs=nargs@entry=0, args=<optimized out>, 
    args@entry=0x45800b4) at ../../src/bytecode.c:1517
#10 0x0000000000566416 in funcall_lambda (fun=XIL(0x7ffd5642c090), 
    nargs=nargs@entry=0, arg_vector=0x45800b4, arg_vector@entry=0x7ffd5642bf38)
    at ../../src/eval.c:2863
#11 0x00000000005666db in Ffuncall (nargs=1, args=0x7ffd5642bf30)
    at ../../src/eval.c:2760
#12 0x0000000000566939 in funcall_nil (nargs=<optimized out>, 
    args=<optimized out>) at ../../src/eval.c:2338
#13 0x0000000000564a55 in run_hook_with_args (nargs=1, args=0x7ffd5642bf30, 
    funcall=0x566930 <funcall_nil>) at ../../src/eval.c:2515
#14 0x0000000000564c33 in run_hook_with_args (funcall=<optimized out>, 
    args=<optimized out>, nargs=<optimized out>) at ../../src/eval.c:2361
#15 Frun_hook_with_args (args=0x7ffd5642bf30, nargs=1) at ../../src/eval.c:2380
#16 run_hook (hook=<optimized out>) at ../../src/eval.c:2528
#17 Frun_hooks (nargs=1, args=0x7ffd5642c020) at ../../src/eval.c:2362
#18 0x00000000005667e9 in Ffuncall (nargs=2, args=args@entry=0x7ffd5642c018)
    at ../../src/eval.c:2679
---Type <return> to continue, or q <return> to quit---
#19 0x000000000059f173 in exec_byte_code (bytestr=<optimized out>, 
    vector=<optimized out>, maxdepth=<optimized out>, 
    args_template=<optimized out>, nargs=nargs@entry=0, args=<optimized out>, 
    args@entry=0x343c164) at ../../src/bytecode.c:880
#20 0x0000000000566416 in funcall_lambda (fun=XIL(0x7ffd5642c6f0), 
    nargs=nargs@entry=0, arg_vector=0x343c164, arg_vector@entry=0x7ffd5642c200)
    at ../../src/eval.c:2863
#21 0x00000000005666db in Ffuncall (nargs=1, args=0x7ffd5642c1f8)
    at ../../src/eval.c:2760
#22 0x0000000000566939 in funcall_nil (nargs=<optimized out>, 
    args=<optimized out>) at ../../src/eval.c:2338
#23 0x0000000000564a55 in run_hook_with_args (nargs=1, args=0x7ffd5642c1f8, 
    funcall=0x566930 <funcall_nil>) at ../../src/eval.c:2515
#24 0x0000000000565259 in run_hook_with_args (funcall=<optimized out>, 
    args=<optimized out>, nargs=<optimized out>) at ../../src/eval.c:2465
#25 Frun_hook_with_args (args=0x7ffd5642c1f8, nargs=1) at ../../src/eval.c:2380
#26 run_hook (hook=<optimized out>, hook@entry=XIL(0x7530))
    at ../../src/eval.c:2528
#27 0x0000000000511aa1 in Fkill_buffer (buffer_or_name=<optimized out>)
    at ../../src/buffer.c:1680
#28 0x00000000005668e0 in Ffuncall (nargs=nargs@entry=2, 
    args=args@entry=0x7ffd5642c3f8) at ../../src/eval.c:2699
#29 0x00000000005622da in Ffuncall_interactively (nargs=2, args=0x7ffd5642c3f8)
---Type <return> to continue, or q <return> to quit---
    at ../../src/callint.c:252
#30 0x00000000005667e9 in Ffuncall (nargs=nargs@entry=3, 
    args=args@entry=0x7ffd5642c3f0) at ../../src/eval.c:2679
#31 0x0000000000562cb6 in Fcall_interactively (function=<optimized out>, 
    record_flag=<optimized out>, keys=<optimized out>)
    at ../../src/callint.c:843
#32 0x00000000005668c6 in Ffuncall (nargs=4, args=args@entry=0x7ffd5642c658)
    at ../../src/eval.c:2706
#33 0x000000000059f173 in exec_byte_code (bytestr=<optimized out>, 
    vector=<optimized out>, maxdepth=<optimized out>, 
    args_template=<optimized out>, nargs=nargs@entry=1, args=<optimized out>, 
    args@entry=0x9394d4 <pure+895540>) at ../../src/bytecode.c:880
#34 0x0000000000566416 in funcall_lambda (fun=XIL(0), nargs=nargs@entry=1, 
    arg_vector=0x9394d4 <pure+895540>, arg_vector@entry=0x7ffd5642c808)
    at ../../src/eval.c:2863
#35 0x00000000005666db in Ffuncall (nargs=nargs@entry=2, 
    args=args@entry=0x7ffd5642c800) at ../../src/eval.c:2760
#36 0x00000000005669da in call1 (fn=fn@entry=XIL(0x3a50), arg1=<optimized out>)
    at ../../src/eval.c:2558
#37 0x0000000000500461 in command_loop_1 () at ../../src/keyboard.c:1484
#38 0x0000000000565002 in internal_condition_case (
    bfun=bfun@entry=0x500040 <command_loop_1>, 
    handlers=handlers@entry=XIL(0x4b00), hfun=hfun@entry=0x4f68c0 <cmd_error>)
---Type <return> to continue, or q <return> to quit---
    at ../../src/eval.c:1315
#39 0x00000000004f1cf4 in command_loop_2 (ignore=ignore@entry=XIL(0))
    at ../../src/keyboard.c:1112
#40 0x0000000000564fa3 in internal_catch (tag=tag@entry=XIL(0xb580), 
    func=func@entry=0x4f1cd0 <command_loop_2>, arg=arg@entry=XIL(0))
    at ../../src/eval.c:1080
#41 0x00000000004f1cb0 in command_loop () at ../../src/keyboard.c:1091
#42 0x00000000004f64b7 in recursive_edit_1 () at ../../src/keyboard.c:697
#43 0x00000000004f6808 in Frecursive_edit () at ../../src/keyboard.c:768
#44 0x000000000041a032 in main (argc=1, argv=0x7ffd5642cc08)
    at ../../src/emacs.c:1629

Lisp Backtrace:
"eshell-write-history" (0x5642bf38)
"run-hooks" (0x5642c020)
"eshell-kill-buffer-function" (0x5642c200)
"kill-buffer" (0x5642c400)
"funcall-interactively" (0x5642c3f8)
"call-interactively" (0x5642c660)
"command-execute" (0x5642c808)
(gdb) 


^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#28700: 25.2; Cannot kill Eshell buffer
  2017-10-04 23:48                     ` Noam Postavsky
  2017-10-15 19:09                       ` Live System User
@ 2017-10-15 19:29                       ` Live System User
  1 sibling, 0 replies; 19+ messages in thread
From: Live System User @ 2017-10-15 19:29 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 28700

[-- Attachment #1: Type: text/plain, Size: 1337 bytes --]

Noam Postavsky <npostavs@users.sourceforge.net> writes:

> Live System User <nyc4bos@aol.com> writes:
>
>>   It's built by Fedora (RedHat).  I have debugging info but I belive
>>   the emacs binary might be stripped, if that matters.
>
> Hmm, you will need gdb, emacs debug info and probably the emacs sources
> as well.
>
> This link explains how to get the debug info:
> https://fedoraproject.org/wiki/StackTraces#What_are_debuginfo_rpms.2C_and_how_do_I_get_them.3F
>
> I'm not sure how to get sources under Redhat based distros.
>
> Also get .gdbinit from
> http://git.savannah.gnu.org/cgit/emacs.git/tree/src/.gdbinit?h=heads/emacs-25.3
>
>>   I dont know how to reproduce this with or without 'emacs -Q' but
>>   it has happened to me periodically so I decided to finally
>>   report it
>>
>>   I'll leave the sessuon around as long as I can.
>
> After you have installed the debugging symbols and gdb, attach gdb to
> the running Emacs by running
>
>     gdb -p xxxx
>
> Where xxxx is Emacs' pid (a number).  Find that out by running 'pgrep -a
> emacs'.  Then at the (gdb) prompt, type
>
>     source .gdbinit
>     break text_read_only
>     continue
>
> Then try to kill the buffer.  Hopefully the breakpoint will be hit and
> emacs becomes frozen.  At the (gdb) prompt, type
>
>     bt

      Additional info...

      Thanks.


[-- Attachment #2: GDB additional info --]
[-- Type: text/plain, Size: 52494 bytes --]

(gdb) break text_read_only
Breakpoint 4 at 0x5b9d00: file ../../src/lisp.h, line 864.
(gdb) continue
Continuing.

Thread 1 "emacs" hit Breakpoint 4, text_read_only (
    propval=propval@entry=XIL(0xb010)) at ../../src/textprop.c:71
71	  if (STRINGP (propval))
(gdb) list
66	   to capture that error in GDB by putting a breakpoint on it.  */
67	
68	static _Noreturn void
69	text_read_only (Lisp_Object propval)
70	{
71	  if (STRINGP (propval))
72	    xsignal1 (Qtext_read_only, propval);
73	
74	  xsignal0 (Qtext_read_only);
75	}
(gdb) next
70	{
(gdb) 
71	  if (STRINGP (propval))
(gdb) step
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) list
859	}
860	
861	INLINE enum Lisp_Type
862	(XTYPE) (Lisp_Object a)
863	{
864	  return lisp_h_XTYPE (a);
865	}
866	
867	INLINE void *
868	(XUNTAG) (Lisp_Object a, int type)
(gdb) 
(gdb) step
text_read_only (propval=propval@entry=XIL(0xb010)) at ../../src/textprop.c:70
70	{
(gdb) 
71	  if (STRINGP (propval))
(gdb) 
STRINGP (x=<optimized out>) at ../../src/textprop.c:71
71	  if (STRINGP (propval))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
text_read_only (propval=propval@entry=XIL(0xb010)) at ../../src/textprop.c:71
71	  if (STRINGP (propval))
(gdb) 
74	  xsignal0 (Qtext_read_only);
(gdb) 
xsignal0 (error_symbol=error_symbol@entry=XIL(0xb250)) at ../../src/eval.c:1591
1591	{
(gdb) 
1592	  xsignal (error_symbol, Qnil);
(gdb) 
xsignal (error_symbol=error_symbol@entry=XIL(0xb250), data=data@entry=XIL(0))
    at ../../src/eval.c:1582
1582	{
(gdb) 
(gdb) list
1577	/* Internal version of Fsignal that never returns.
1578	   Used for anything but Qquit (which can return from Fsignal).  */
1579	
1580	void
1581	xsignal (Lisp_Object error_symbol, Lisp_Object data)
1582	{
1583	  Fsignal (error_symbol, data);
1584	  emacs_abort ();
1585	}
1586	
(gdb) 
(gdb) step
1583	  Fsignal (error_symbol, data);
(gdb) 
Fsignal (error_symbol=error_symbol@entry=XIL(0xb250), data=data@entry=XIL(0))
    at ../../src/eval.c:1470
1470	{
(gdb) list
1465	See Info anchor `(elisp)Definition of signal' for some details on how this
1466	error message is constructed.
1467	If the signal is handled, DATA is made available to the handler.
1468	See also the function `condition-case'.  */)
1469	  (Lisp_Object error_symbol, Lisp_Object data)
1470	{
1471	  /* When memory is full, ERROR-SYMBOL is nil,
1472	     and DATA is (REAL-ERROR-SYMBOL . REAL-DATA).
1473	     That is a special case--don't do this in other situations.  */
1474	  Lisp_Object conditions;
(gdb) 
(gdb) step
1477	    = (NILP (error_symbol) ? Fcar (data) : error_symbol);
(gdb) 
1470	{
(gdb) 
1477	    = (NILP (error_symbol) ? Fcar (data) : error_symbol);
(gdb) 
1483	  if (gc_in_progress || waiting_for_input)
(gdb) 
1481	  immediate_quit = 0;
(gdb) 
1482	  abort_on_gc = 0;
(gdb) 
1483	  if (gc_in_progress || waiting_for_input)
(gdb) 
1495	  if (! NILP (Vsignal_hook_function)
(gdb) 
1508	  conditions = Fget (real_error_symbol, Qerror_conditions);
(gdb) 
Fget (symbol=symbol@entry=XIL(0xb250), propname=propname@entry=XIL(0x4b30))
    at ../../src/fns.c:2074
2074	  CHECK_SYMBOL (symbol);
(gdb) 
(gdb) list
2069	DEFUN ("get", Fget, Sget, 2, 2, 0,
2070	       doc: /* Return the value of SYMBOL's PROPNAME property.
2071	This is the last value stored with `(put SYMBOL PROPNAME VALUE)'.  */)
2072	  (Lisp_Object symbol, Lisp_Object propname)
2073	{
2074	  CHECK_SYMBOL (symbol);
2075	  return Fplist_get (XSYMBOL (symbol)->plist, propname);
2076	}
2077	
2078	DEFUN ("plist-put", Fplist_put, Splist_put, 3, 3, 0,
(gdb) 
(gdb) step
CHECK_SYMBOL (x=x@entry=XIL(0xb250)) at ../../src/fns.c:2074
2074	  CHECK_SYMBOL (symbol);
(gdb) 
(gdb) list
2069	DEFUN ("get", Fget, Sget, 2, 2, 0,
2070	       doc: /* Return the value of SYMBOL's PROPNAME property.
2071	This is the last value stored with `(put SYMBOL PROPNAME VALUE)'.  */)
2072	  (Lisp_Object symbol, Lisp_Object propname)
2073	{
2074	  CHECK_SYMBOL (symbol);
2075	  return Fplist_get (XSYMBOL (symbol)->plist, propname);
2076	}
2077	
2078	DEFUN ("plist-put", Fplist_put, Splist_put, 3, 3, 0,
(gdb) 
(gdb) step
CHECK_TYPE (x=x@entry=XIL(0xb250), predicate=XIL(0xaf50), ok=1)
    at ../../src/lisp.h:1183
1183	  lisp_h_CHECK_TYPE (ok, predicate, x);
(gdb) 
(gdb) list
1178	/* Type checking.  */
1179	
1180	INLINE void
1181	(CHECK_TYPE) (int ok, Lisp_Object predicate, Lisp_Object x)
1182	{
1183	  lisp_h_CHECK_TYPE (ok, predicate, x);
1184	}
1185	
1186	/* See the macros in intervals.h.  */
1187	
(gdb) 
(gdb) step
Fget (symbol=symbol@entry=XIL(0xb250), propname=propname@entry=XIL(0x4b30))
    at ../../src/fns.c:2075
2075	  return Fplist_get (XSYMBOL (symbol)->plist, propname);
(gdb) 
(gdb) list
2070	       doc: /* Return the value of SYMBOL's PROPNAME property.
2071	This is the last value stored with `(put SYMBOL PROPNAME VALUE)'.  */)
2072	  (Lisp_Object symbol, Lisp_Object propname)
2073	{
2074	  CHECK_SYMBOL (symbol);
2075	  return Fplist_get (XSYMBOL (symbol)->plist, propname);
2076	}
2077	
2078	DEFUN ("plist-put", Fplist_put, Splist_put, 3, 3, 0,
2079	       doc: /* Change value in PLIST of PROP to VAL.
(gdb) 
(gdb) step
Fplist_get (plist=XIL(0xc16c23), prop=prop@entry=XIL(0x4b30))
    at ../../src/fns.c:2054
2054	  tail = halftail = plist;
(gdb) 
(gdb) list
2049	  (Lisp_Object plist, Lisp_Object prop)
2050	{
2051	  Lisp_Object tail, halftail;
2052	
2053	  /* halftail is used to detect circular lists.  */
2054	  tail = halftail = plist;
2055	  while (CONSP (tail) && CONSP (XCDR (tail)))
2056	    {
2057	      if (EQ (prop, XCAR (tail)))
2058		return XCAR (XCDR (tail));
(gdb) 
(gdb) step
2055	  while (CONSP (tail) && CONSP (XCDR (tail)))
(gdb) 
CONSP (x=<optimized out>) at ../../src/fns.c:2055
2055	  while (CONSP (tail) && CONSP (XCDR (tail)))
(gdb) 
2056	    {
2057	      if (EQ (prop, XCAR (tail)))
2058		return XCAR (XCDR (tail));
(gdb) step
2055	  while (CONSP (tail) && CONSP (XCDR (tail)))
(gdb) 
CONSP (x=<optimized out>) at ../../src/fns.c:2055
2055	  while (CONSP (tail) && CONSP (XCDR (tail)))
(gdb) list
2050	{
2051	  Lisp_Object tail, halftail;
2052	
2053	  /* halftail is used to detect circular lists.  */
2054	  tail = halftail = plist;
2055	  while (CONSP (tail) && CONSP (XCDR (tail)))
2056	    {
2057	      if (EQ (prop, XCAR (tail)))
2058		return XCAR (XCDR (tail));
2059	
(gdb) step
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
(gdb) list
859	}
860	
861	INLINE enum Lisp_Type
862	(XTYPE) (Lisp_Object a)
863	{
864	  return lisp_h_XTYPE (a);
865	}
866	
867	INLINE void *
868	(XUNTAG) (Lisp_Object a, int type)
(gdb) 
(gdb) step
Fplist_get (plist=<optimized out>, prop=prop@entry=XIL(0x4b30))
    at ../../src/fns.c:2055
2055	  while (CONSP (tail) && CONSP (XCDR (tail)))
(gdb) 
XCDR (c=XIL(0xc16c23)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
Fplist_get (plist=<optimized out>, prop=prop@entry=XIL(0x4b30))
    at ../../src/fns.c:2055
2055	  while (CONSP (tail) && CONSP (XCDR (tail)))
(gdb) 
CONSP (x=<optimized out>) at ../../src/fns.c:2055
2055	  while (CONSP (tail) && CONSP (XCDR (tail)))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
Fplist_get (plist=<optimized out>, prop=prop@entry=XIL(0x4b30))
    at ../../src/fns.c:2055
2055	  while (CONSP (tail) && CONSP (XCDR (tail)))
(gdb) 
2057	      if (EQ (prop, XCAR (tail)))
(gdb) 
2058		return XCAR (XCDR (tail));
(gdb) 
XCAR (c=XIL(0xc16c13)) at ../../src/lisp.h:1228
1228	  return lisp_h_XCAR (c);
(gdb) 
Fplist_get (plist=<optimized out>, prop=prop@entry=XIL(0x4b30))
    at ../../src/fns.c:2058
2058		return XCAR (XCDR (tail));
(gdb) 
Fsignal (error_symbol=error_symbol@entry=XIL(0xb250), data=data@entry=XIL(0))
    at ../../src/eval.c:1515
1515	  if (!NILP (error_symbol))
(gdb) 
(gdb) list
1510	  /* Remember from where signal was called.  Skip over the frame for
1511	     `signal' itself.  If a frame for `error' follows, skip that,
1512	     too.  Don't do this when ERROR_SYMBOL is nil, because that
1513	     is a memory-full error.  */
1514	  Vsignaling_function = Qnil;
1515	  if (!NILP (error_symbol))
1516	    {
1517	      union specbinding *pdl = backtrace_next (backtrace_top ());
1518	      if (backtrace_p (pdl) && EQ (backtrace_function (pdl), Qerror))
1519		pdl = backtrace_next (pdl);
(gdb) 
(gdb) step
1508	  conditions = Fget (real_error_symbol, Qerror_conditions);
(gdb) 
1514	  Vsignaling_function = Qnil;
(gdb) 
1515	  if (!NILP (error_symbol))
(gdb) 
1517	      union specbinding *pdl = backtrace_next (backtrace_top ());
(gdb) 
backtrace_top () at ../../src/eval.c:183
183	  union specbinding *pdl = specpdl_ptr - 1;
(gdb) 
(gdb) list
178	{ return pdl >= specpdl; }
179	
180	union specbinding *
181	backtrace_top (void)
182	{
183	  union specbinding *pdl = specpdl_ptr - 1;
184	  while (backtrace_p (pdl) && pdl->kind != SPECPDL_BACKTRACE)
185	    pdl--;
186	  return pdl;
187	}
(gdb) 
(gdb) step
184	  while (backtrace_p (pdl) && pdl->kind != SPECPDL_BACKTRACE)
(gdb) 
backtrace_p (pdl=<optimized out>) at ../../src/eval.c:178
178	{ return pdl >= specpdl; }
(gdb) 
(gdb) list
173	
174	/* Helper functions to scan the backtrace.  */
175	
176	bool
177	backtrace_p (union specbinding *pdl)
178	{ return pdl >= specpdl; }
179	
180	union specbinding *
181	backtrace_top (void)
182	{
(gdb) 
(gdb) step
backtrace_top () at ../../src/eval.c:183
183	  union specbinding *pdl = specpdl_ptr - 1;
(gdb) 
184	  while (backtrace_p (pdl) && pdl->kind != SPECPDL_BACKTRACE)
(gdb) 
Fsignal (error_symbol=error_symbol@entry=XIL(0xb250), data=data@entry=XIL(0))
    at ../../src/eval.c:1517
1517	      union specbinding *pdl = backtrace_next (backtrace_top ());
(gdb) 
backtrace_next (pdl=0x339b9e0) at ../../src/eval.c:192
192	  pdl--;
(gdb) list
187	}
188	
189	union specbinding *
190	backtrace_next (union specbinding *pdl)
191	{
192	  pdl--;
193	  while (backtrace_p (pdl) && pdl->kind != SPECPDL_BACKTRACE)
194	    pdl--;
195	  return pdl;
196	}
(gdb) 
(gdb) step
193	  while (backtrace_p (pdl) && pdl->kind != SPECPDL_BACKTRACE)
(gdb) 
194	    pdl--;
(gdb) 
193	  while (backtrace_p (pdl) && pdl->kind != SPECPDL_BACKTRACE)
(gdb) 
194	    pdl--;
(gdb) 
193	  while (backtrace_p (pdl) && pdl->kind != SPECPDL_BACKTRACE)
(gdb) 
Fsignal (error_symbol=error_symbol@entry=XIL(0xb250), data=data@entry=XIL(0))
    at ../../src/eval.c:1518
1518	      if (backtrace_p (pdl) && EQ (backtrace_function (pdl), Qerror))
(gdb) 
backtrace_function (pdl=0x339b980) at ../../src/eval.c:133
133	  return pdl->bt.function;
(gdb) 
Fsignal (error_symbol=error_symbol@entry=XIL(0xb250), data=data@entry=XIL(0))
    at ../../src/eval.c:1518
1518	      if (backtrace_p (pdl) && EQ (backtrace_function (pdl), Qerror))
(gdb) 
(gdb) step
1521		Vsignaling_function = backtrace_function (pdl);
(gdb) 
1524	  for (h = handlerlist; h; h = h->next)
(gdb) 
1526	      if (h->type != CONDITION_CASE)
(gdb) 
1528	      clause = find_handler_clause (h->tag_or_ch, conditions);
(gdb) 
find_handler_clause (conditions=XIL(0x86945b), handlers=XIL(0x4b00))
    at ../../src/eval.c:1746
1746	  if (EQ (handlers, Qerror))
(gdb) 
(gdb) list
1741	  if (EQ (handlers, Qt))
1742	    return Qt;
1743	
1744	  /* error is used similarly, but means print an error message
1745	     and run the debugger if that is enabled.  */
1746	  if (EQ (handlers, Qerror))
1747	    return Qt;
1748	
1749	  for (h = handlers; CONSP (h); h = XCDR (h))
1750	    {
(gdb) 
(gdb) step
1533	  if (/* Don't run the debugger for a memory-full error.
(gdb) 
1538		  || NILP (clause)
(gdb) 
1541		  || (CONSP (clause) && !NILP (Fmemq (Qdebug, clause)))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1541
1541		  || (CONSP (clause) && !NILP (Fmemq (Qdebug, clause)))
(gdb) 
(gdb) list
1536	      && (!NILP (Vdebug_on_signal)
1537		  /* If no handler is present now, try to run the debugger.  */
1538		  || NILP (clause)
1539		  /* A `debug' symbol in the handler list disables the normal
1540		     suppression of the debugger.  */
1541		  || (CONSP (clause) && !NILP (Fmemq (Qdebug, clause)))
1542		  /* Special handler that means "print a message and run debugger
1543		     if requested".  */
1544		  || EQ (h->tag_or_ch, Qerror)))
1545	    {
(gdb) 
(gdb) step
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
Fsignal (error_symbol=error_symbol@entry=XIL(0xb250), data=data@entry=XIL(0))
    at ../../src/eval.c:1541
1541		  || (CONSP (clause) && !NILP (Fmemq (Qdebug, clause)))
(gdb) 
(gdb) list
1536	      && (!NILP (Vdebug_on_signal)
1537		  /* If no handler is present now, try to run the debugger.  */
1538		  || NILP (clause)
1539		  /* A `debug' symbol in the handler list disables the normal
1540		     suppression of the debugger.  */
1541		  || (CONSP (clause) && !NILP (Fmemq (Qdebug, clause)))
1542		  /* Special handler that means "print a message and run debugger
1543		     if requested".  */
1544		  || EQ (h->tag_or_ch, Qerror)))
1545	    {
(gdb) 
(gdb) step
1544		  || EQ (h->tag_or_ch, Qerror)))
(gdb) 
1546	      bool debugger_called
(gdb) 
maybe_call_debugger (data=XIL(0), sig=XIL(0xb250), conditions=XIL(0x86945b))
    at ../../src/eval.c:1713
1713	  combined_data = Fcons (sig, data);
(gdb) 
(gdb) list
1708	static bool
1709	maybe_call_debugger (Lisp_Object conditions, Lisp_Object sig, Lisp_Object data)
1710	{
1711	  Lisp_Object combined_data;
1712	
1713	  combined_data = Fcons (sig, data);
1714	
1715	  if (
1716	      /* Don't try to run the debugger with interrupts blocked.
1717		 The editing loop would return anyway.  */
(gdb) 
(gdb) step
Fcons (car=car@entry=XIL(0xb250), cdr=cdr@entry=XIL(0))
    at ../../src/alloc.c:2707
2707	{
(gdb) 
(gdb) list
2702	}
2703	
2704	DEFUN ("cons", Fcons, Scons, 2, 2, 0,
2705	       doc: /* Create a new cons, give it CAR and CDR as components, and return it.  */)
2706	  (Lisp_Object car, Lisp_Object cdr)
2707	{
2708	  register Lisp_Object val;
2709	
2710	  MALLOC_BLOCK_INPUT;
2711	
(gdb) 
(gdb) step
2712	  if (cons_free_list)
(gdb) 
2721	      if (cons_block_index == CONS_BLOCK_SIZE)
(gdb) 
2731	      XSETCONS (val, &cons_block->conses[cons_block_index]);
(gdb) 
make_lisp_ptr (type=Lisp_Cons, ptr=0x58d9940) at ../../src/lisp.h:1097
1097	  Lisp_Object a = XIL (TAG_PTR (type, ptr));
(gdb) 
(gdb) list
1092	/* Construct a Lisp_Object from a value or address.  */
1093	
1094	INLINE Lisp_Object
1095	make_lisp_ptr (void *ptr, enum Lisp_Type type)
1096	{
1097	  Lisp_Object a = XIL (TAG_PTR (type, ptr));
1098	  eassert (XTYPE (a) == type && XUNTAG (a, type) == ptr);
1099	  return a;
1100	}
1101	
(gdb) 
(gdb) step
Fcons (car=car@entry=XIL(0xb250), cdr=cdr@entry=XIL(0))
    at ../../src/alloc.c:2732
2732	      cons_block_index++;
(gdb) 
(gdb) list
2727		  cons_block = new;
2728		  cons_block_index = 0;
2729		  total_free_conses += CONS_BLOCK_SIZE;
2730		}
2731	      XSETCONS (val, &cons_block->conses[cons_block_index]);
2732	      cons_block_index++;
2733	    }
2734	
2735	  MALLOC_UNBLOCK_INPUT;
2736	
(gdb) 
(gdb) step
2741	  total_free_conses--;
(gdb) 
2737	  XSETCAR (val, car);
(gdb) 
XSETCAR (n=XIL(0xb250), c=XIL(0x58d9943)) at ../../src/lisp.h:1244
1244	  *xcar_addr (c) = n;
(gdb) 
(gdb) list
1239	   Note that both arguments may refer to the same object, so 'n'
1240	   should not be read after 'c' is first modified.  */
1241	INLINE void
1242	XSETCAR (Lisp_Object c, Lisp_Object n)
1243	{
1244	  *xcar_addr (c) = n;
1245	}
1246	INLINE void
1247	XSETCDR (Lisp_Object c, Lisp_Object n)
1248	{
(gdb) 
(gdb) step
Fcons (car=car@entry=XIL(0xb250), cdr=cdr@entry=XIL(0))
    at ../../src/alloc.c:2738
2738	  XSETCDR (val, cdr);
(gdb) 
XSETCDR (n=XIL(0), c=XIL(0x58d9943)) at ../../src/lisp.h:1249
1249	  *xcdr_addr (c) = n;
(gdb) 
Fcons (car=car@entry=XIL(0xb250), cdr=cdr@entry=XIL(0))
    at ../../src/alloc.c:2740
2740	  consing_since_gc += sizeof (struct Lisp_Cons);
(gdb) 
2741	  total_free_conses--;
(gdb) 
2742	  cons_cells_consed++;
(gdb) 
2744	}
(gdb) 
maybe_call_debugger (data=XIL(0), sig=XIL(0xb250), conditions=XIL(0x86945b))
    at ../../src/eval.c:1718
1718	      ! input_blocked_p ()
(gdb) 
(gdb) step
input_blocked_p () at ../../src/blockinput.h:67
67	  return interrupt_input_blocked > 0;
(gdb) 
maybe_call_debugger (data=XIL(0), sig=XIL(0xb250), conditions=XIL(0x86945b))
    at ../../src/eval.c:1715
1715	  if (
(gdb) 
1719	      && NILP (Vinhibit_debugger)
(gdb) 
1721	      && (EQ (sig, Qquit)
(gdb) 
1723		  : wants_debugger (Vdebug_on_error, conditions))
(gdb) 
wants_debugger (conditions=XIL(0x86945b), list=XIL(0xb010))
    at ../../src/eval.c:1648
1648	  if (NILP (list))
(gdb) 
1650	  if (! CONSP (list))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1650
1650	  if (! CONSP (list))
(gdb) 
(gdb) list
1645	static bool
1646	wants_debugger (Lisp_Object list, Lisp_Object conditions)
1647	{
1648	  if (NILP (list))
1649	    return 0;
1650	  if (! CONSP (list))
1651	    return 1;
1652	
1653	  while (CONSP (conditions))
1654	    {
(gdb) 
(gdb) step
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
wants_debugger (conditions=XIL(0x86945b), list=XIL(0xb010))
    at ../../src/eval.c:1650
1650	  if (! CONSP (list))
(gdb) 
maybe_call_debugger (data=XIL(0), sig=XIL(0xb250), conditions=XIL(0x86945b))
    at ../../src/eval.c:1724
1724	      && ! skip_debugger (conditions, combined_data)
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
XCAR (c=XIL(0xfe5ce3)) at ../../src/lisp.h:1228
1228	  return lisp_h_XCAR (c);
(gdb) 
XCONS (a=XIL(0xfe5ce3)) at ../../src/lisp.h:1228
1228	  return lisp_h_XCAR (c);
(gdb) 
XUNTAG (type=3, a=XIL(0xfe5ce3)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
STRINGP (x=<optimized out>) at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCAR (c=XIL(0x86945b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCONS (a=XIL(0x86945b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XUNTAG (type=3, a=XIL(0x86945b)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCDR (c=XIL(0x86945b)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCAR (c=XIL(0x86944b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCONS (a=XIL(0x86944b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XUNTAG (type=3, a=XIL(0x86944b)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCDR (c=XIL(0x86945b)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCAR (c=XIL(0x86905b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCONS (a=XIL(0x86905b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XUNTAG (type=3, a=XIL(0x86905b)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCDR (c=XIL(0x86945b)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
XCDR (c=XIL(0xfe5cd3)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
CONSP (x=XIL(0xfe5cd3)) at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
XTYPE (a=XIL(0xfe5cd3)) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
XCAR (c=XIL(0xfe5cd3)) at ../../src/lisp.h:1228
1228	  return lisp_h_XCAR (c);
(gdb) 
XCONS (a=XIL(0xfe5cd3)) at ../../src/lisp.h:1228
1228	  return lisp_h_XCAR (c);
(gdb) 
XUNTAG (type=3, a=XIL(0xfe5cd3)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
STRINGP (x=<optimized out>) at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCAR (c=XIL(0x86945b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCONS (a=XIL(0x86945b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XUNTAG (type=3, a=XIL(0x86945b)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCDR (c=XIL(0x86945b)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCAR (c=XIL(0x86944b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCONS (a=XIL(0x86944b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XUNTAG (type=3, a=XIL(0x86944b)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCDR (c=XIL(0x86945b)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCAR (c=XIL(0x86905b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCONS (a=XIL(0x86905b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XUNTAG (type=3, a=XIL(0x86905b)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCDR (c=XIL(0x86945b)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
XCDR (c=XIL(0xfe5cc3)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
CONSP (x=XIL(0xfe5cc3)) at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
XTYPE (a=XIL(0xfe5cc3)) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
XCAR (c=XIL(0xfe5cc3)) at ../../src/lisp.h:1228
1228	  return lisp_h_XCAR (c);
(gdb) 
XCONS (a=XIL(0xfe5cc3)) at ../../src/lisp.h:1228
1228	  return lisp_h_XCAR (c);
(gdb) 
XUNTAG (type=3, a=XIL(0xfe5cc3)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
STRINGP (x=<optimized out>) at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCAR (c=XIL(0x86945b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCONS (a=XIL(0x86945b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XUNTAG (type=3, a=XIL(0x86945b)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCDR (c=XIL(0x86945b)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCAR (c=XIL(0x86944b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCONS (a=XIL(0x86944b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XUNTAG (type=3, a=XIL(0x86944b)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCDR (c=XIL(0x86945b)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCAR (c=XIL(0x86905b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCONS (a=XIL(0x86905b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XUNTAG (type=3, a=XIL(0x86905b)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCDR (c=XIL(0x86945b)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
XCDR (c=XIL(0xfe5ac3)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
CONSP (x=XIL(0xfe5ac3)) at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
XTYPE (a=XIL(0xfe5ac3)) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
XCAR (c=XIL(0xfe5ac3)) at ../../src/lisp.h:1228
1228	  return lisp_h_XCAR (c);
(gdb) 
XCONS (a=XIL(0xfe5ac3)) at ../../src/lisp.h:1228
1228	  return lisp_h_XCAR (c);
(gdb) 
XUNTAG (type=3, a=XIL(0xfe5ac3)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
STRINGP (x=<optimized out>) at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCAR (c=XIL(0x86945b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCONS (a=XIL(0x86945b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XUNTAG (type=3, a=XIL(0x86945b)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCDR (c=XIL(0x86945b)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCAR (c=XIL(0x86944b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCONS (a=XIL(0x86944b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XUNTAG (type=3, a=XIL(0x86944b)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCDR (c=XIL(0x86945b)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCAR (c=XIL(0x86905b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCONS (a=XIL(0x86905b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XUNTAG (type=3, a=XIL(0x86905b)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCDR (c=XIL(0x86945b)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
XCDR (c=XIL(0xfe5ab3)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
CONSP (x=XIL(0xfe5ab3)) at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
XTYPE (a=XIL(0xfe5ab3)) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
XCAR (c=XIL(0xfe5ab3)) at ../../src/lisp.h:1228
1228	  return lisp_h_XCAR (c);
(gdb) 
XCONS (a=XIL(0xfe5ab3)) at ../../src/lisp.h:1228
1228	  return lisp_h_XCAR (c);
(gdb) 
XUNTAG (type=3, a=XIL(0xfe5ab3)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
STRINGP (x=<optimized out>) at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCAR (c=XIL(0x86945b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCONS (a=XIL(0x86945b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XUNTAG (type=3, a=XIL(0x86945b)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCDR (c=XIL(0x86945b)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCAR (c=XIL(0x86944b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCONS (a=XIL(0x86944b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XUNTAG (type=3, a=XIL(0x86944b)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCDR (c=XIL(0x86945b)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCAR (c=XIL(0x86905b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCONS (a=XIL(0x86905b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XUNTAG (type=3, a=XIL(0x86905b)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCDR (c=XIL(0x86945b)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
XCDR (c=XIL(0xfe5aa3)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
CONSP (x=XIL(0xfe5aa3)) at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
XTYPE (a=XIL(0xfe5aa3)) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1677
1677	  for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
(gdb) 
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
XCAR (c=XIL(0xfe5aa3)) at ../../src/lisp.h:1228
1228	  return lisp_h_XCAR (c);
(gdb) 
XCONS (a=XIL(0xfe5aa3)) at ../../src/lisp.h:1228
1228	  return lisp_h_XCAR (c);
(gdb) 
XUNTAG (type=3, a=XIL(0xfe5aa3)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
STRINGP (x=<optimized out>) at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1679
1679	      if (STRINGP (XCAR (tail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCAR (c=XIL(0x86945b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCONS (a=XIL(0x86945b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XUNTAG (type=3, a=XIL(0x86945b)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCDR (c=XIL(0x86945b)) at ../../src/lisp.h:1234
1234	  return lisp_h_XCDR (c);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
CONSP (x=<optimized out>) at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XTYPE (a=<optimized out>) at ../../src/lisp.h:864
864	  return lisp_h_XTYPE (a);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1694
1694		  for (contail = conditions; CONSP (contail); contail = XCDR (contail))
(gdb) 
XCAR (c=XIL(0x86944b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XCONS (a=XIL(0x86944b)) at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
XUNTAG (type=3, a=XIL(0x86944b)) at ../../src/lisp.h:870
870	  return lisp_h_XUNTAG (a, type);
(gdb) 
skip_debugger (data=XIL(0x58d9943), conditions=XIL(0x86945b))
    at ../../src/eval.c:1695
1695		    if (EQ (XCAR (tail), XCAR (contail)))
(gdb) 
Fsignal (error_symbol=error_symbol@entry=XIL(0xb250), data=data@entry=XIL(0))
    at ../../src/eval.c:1554
1554	  if (!NILP (clause))
(gdb) 
1557		= (NILP (error_symbol) ? data : Fcons (error_symbol, data));
(gdb) 
Fcons (car=car@entry=XIL(0xb250), cdr=cdr@entry=XIL(0))
    at ../../src/alloc.c:2707
2707	{
(gdb) 
2712	  if (cons_free_list)
(gdb) 
2721	      if (cons_block_index == CONS_BLOCK_SIZE)
(gdb) 
2731	      XSETCONS (val, &cons_block->conses[cons_block_index]);
(gdb) 
make_lisp_ptr (type=Lisp_Cons, ptr=0x58d9950) at ../../src/lisp.h:1097
1097	  Lisp_Object a = XIL (TAG_PTR (type, ptr));
(gdb) 
Fcons (car=car@entry=XIL(0xb250), cdr=cdr@entry=XIL(0))
    at ../../src/alloc.c:2732
2732	      cons_block_index++;
(gdb) 
2741	  total_free_conses--;
(gdb) 
2737	  XSETCAR (val, car);
(gdb) 
XSETCAR (n=XIL(0xb250), c=XIL(0x58d9953)) at ../../src/lisp.h:1244
1244	  *xcar_addr (c) = n;
(gdb) 
Fcons (car=car@entry=XIL(0xb250), cdr=cdr@entry=XIL(0))
    at ../../src/alloc.c:2738
2738	  XSETCDR (val, cdr);
(gdb) 
XSETCDR (n=XIL(0), c=XIL(0x58d9953)) at ../../src/lisp.h:1249
1249	  *xcdr_addr (c) = n;
(gdb) 
Fcons (car=car@entry=XIL(0xb250), cdr=cdr@entry=XIL(0))
    at ../../src/alloc.c:2740
2740	  consing_since_gc += sizeof (struct Lisp_Cons);
(gdb) 
2741	  total_free_conses--;
(gdb) 
2742	  cons_cells_consed++;
(gdb) 
2744	}
(gdb) 
Fsignal (error_symbol=error_symbol@entry=XIL(0xb250), data=data@entry=XIL(0))
    at ../../src/eval.c:1559
1559	      unwind_to_catch (h, unwind_data);
(gdb) 
unwind_to_catch (catch=catch@entry=0x14cdea0, value=value@entry=XIL(0x58d9953))
    at ../../src/eval.c:1112
1112	{
(gdb) 
1118	  catch->val = value;
(gdb) 
1112	{
(gdb) 
1121	  set_poll_suppress_count (catch->poll_suppress_count);
(gdb) 
set_poll_suppress_count (count=1) at ../../src/keyboard.c:1967
1967	{
(gdb) 
1969	  if (count == 0 && poll_suppress_count != 0)
(gdb) 
1974	  else if (count != 0 && poll_suppress_count == 0)
(gdb) 
1978	  poll_suppress_count = count;
(gdb) 
1980	}
(gdb) 
unwind_to_catch (catch=catch@entry=0x14cdea0, value=value@entry=XIL(0x58d9953))
    at ../../src/eval.c:1122
1122	  unblock_input_to (catch->interrupt_input_blocked);
(gdb) 
unblock_input_to (level=0) at ../../src/keyboard.c:7093
7093	  if (level == 0)
(gdb) 
7092	  interrupt_input_blocked = level;
(gdb) 
7093	  if (level == 0)
(gdb) 
7095	      if (pending_signals && !fatal_error_in_progress)
(gdb) 
unblock_input_to (level=0) at ../../src/keyboard.c:7096
7096		process_pending_signals ();
(gdb) 
process_pending_signals () at ../../src/keyboard.c:7079
7079	{
(gdb) 
7080	  pending_signals = false;
(gdb) 
7081	  handle_async_input ();
(gdb) 
handle_async_input () at ../../src/keyboard.c:7067
7067	      int nread = gobble_input ();
(gdb) 
gobble_input () at ../../src/keyboard.c:6786
6786	{
(gdb) 
6792	  store_user_signal_events ();
(gdb) 
store_user_signal_events () at ../../src/keyboard.c:7253
7253	  for (p = user_signals; p; p = p->next)
(gdb) 
gobble_input () at ../../src/keyboard.c:6786
6786	{
(gdb) 
6792	  store_user_signal_events ();
(gdb) 
store_user_signal_events () at ../../src/keyboard.c:7253
7253	  for (p = user_signals; p; p = p->next)
(gdb) 
7254	    if (p->npending > 0)
(gdb) 
7253	  for (p = user_signals; p; p = p->next)
(gdb) 
7254	    if (p->npending > 0)
(gdb) 
7253	  for (p = user_signals; p; p = p->next)
(gdb) 
gobble_input () at ../../src/keyboard.c:6795
6795	  t = terminal_list;
(gdb) 
6796	  while (t)
(gdb) 
6811	          EVENT_INIT (hold_quit);
(gdb) 
memset (__len=<optimized out>, __ch=<optimized out>, __dest=<optimized out>)
    at /usr/include/bits/string3.h:90
90	  return __builtin___memset_chk (__dest, __ch, __len, __bos0 (__dest));
(gdb) 
gobble_input () at ../../src/keyboard.c:6796
6796	  while (t)
(gdb) 
6800	      if (t->read_socket_hook)
(gdb) 
6798	      struct terminal *next = t->next_terminal;
(gdb) 
6800	      if (t->read_socket_hook)
(gdb) 
6805		  if (input_blocked_p ())
(gdb) 
input_blocked_p () at ../../src/blockinput.h:67
67	  return interrupt_input_blocked > 0;
(gdb) 
gobble_input () at ../../src/keyboard.c:6805
6805		  if (input_blocked_p ())
(gdb) 
6811	          EVENT_INIT (hold_quit);
(gdb) 
memset (__len=56, __ch=0, __dest=0x7ffd5642bda0)
    at /usr/include/bits/string3.h:90
90	  return __builtin___memset_chk (__dest, __ch, __len, __bos0 (__dest));
(gdb) 
gobble_input () at ../../src/keyboard.c:6815
6815		  while ((nr = (*t->read_socket_hook) (t, &hold_quit)) > 0)
(gdb) 
XTread_socket (terminal=<optimized out>, hold_quit=<optimized out>)
    at ../../src/xterm.c:8733
8733	{
(gdb) 
55	  interrupt_input_blocked++;
(gdb) 
8736	  struct x_display_info *dpyinfo = terminal->display_info.x;
(gdb) 
55	  interrupt_input_blocked++;
(gdb) 

(gdb) 
74	  xsignal0 (Qtext_read_only);
(gdb) 

[...]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#28700: 25.2; Cannot kill Eshell buffer
  2017-10-15 19:09                       ` Live System User
@ 2017-10-15 19:48                         ` Noam Postavsky
  2017-10-15 22:02                           ` Live System User
  0 siblings, 1 reply; 19+ messages in thread
From: Noam Postavsky @ 2017-10-15 19:48 UTC (permalink / raw)
  To: Live System User; +Cc: 28700

Live System User <nyc4bos@aol.com> writes:

>       Here is some GDB info.

> (gdb) bt
> #0  text_read_only (propval=propval@entry=XIL(0xb010))
>     at ../../src/textprop.c:71

> Lisp Backtrace:
> "eshell-write-history" (0x5642bf38)
> "run-hooks" (0x5642c020)
> "eshell-kill-buffer-function" (0x5642c200)
> "kill-buffer" (0x5642c400)
> "funcall-interactively" (0x5642c3f8)
> "call-interactively" (0x5642c660)
> "command-execute" (0x5642c808)

Thanks, my guess is you have some string with a read-only property in
eshell history (probably introduced by copying from another buffer), and
this is tripping up eshell-write-history.

Can you post the result of

    M-x pp-eval-expression RET eshell-history-ring RET

If my guess is correct there should be some strings of the form

    #("some command" 0 11 (read-only t))






^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#28700: 25.2; Cannot kill Eshell buffer
  2017-10-15 19:48                         ` Noam Postavsky
@ 2017-10-15 22:02                           ` Live System User
  2017-10-16  2:20                             ` Noam Postavsky
  0 siblings, 1 reply; 19+ messages in thread
From: Live System User @ 2017-10-15 22:02 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 28700

Noam Postavsky <npostavs@users.sourceforge.net> writes:

> Live System User <nyc4bos@aol.com> writes:
>
>>       Here is some GDB info.
>
>> (gdb) bt
>> #0  text_read_only (propval=propval@entry=XIL(0xb010))
>>     at ../../src/textprop.c:71
>
>> Lisp Backtrace:
>> "eshell-write-history" (0x5642bf38)
>> "run-hooks" (0x5642c020)
>> "eshell-kill-buffer-function" (0x5642c200)
>> "kill-buffer" (0x5642c400)
>> "funcall-interactively" (0x5642c3f8)
>> "call-interactively" (0x5642c660)
>> "command-execute" (0x5642c808)
>
> Thanks, my guess is you have some string with a read-only property in
> eshell history (probably introduced by copying from another buffer), and
> this is tripping up eshell-write-history.
>
> Can you post the result of
>
>     M-x pp-eval-expression RET eshell-history-ring RET
>
> If my guess is correct there should be some strings of the form
>
>     #("some command" 0 11 (read-only t))

      Yes.  So how do I deal wi'th?

      Thanks.



(6 128 .
   [#("ssh localhost ps -efw | grep ssh" 0 1
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      3 4
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t)
      4 5
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      13 14
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t)
      14 15
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      16 17
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t)
      17 18
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      21 22
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t)
      22 23
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      23 24
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t)
      24 25
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      28 29
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t)
      29 30
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      31 32
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t))
    #("ssh localhost ps -efw | grep ssh" 0 1
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      3 4
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t)
      4 5
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      13 14
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t)
      14 15
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      16 17
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t)
      17 18
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      21 22
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t)
      22 23
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      23 24
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t)
      24 25
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      28 29
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t)
      29 30
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      31 32
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t))
    #("ssh localhost ps" 0 1
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      3 4
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t)
      4 5
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      13 14
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t)
      14 15
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      15 16
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t))
    #("ssh localhost " 0 1
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      3 4
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t)
      4 5
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      13 14
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t))
    #("~/" 0 1
      (rear-nonsticky
       (arg-begin arg-end)
       read-only t arg-begin t)
      1 2
      (rear-nonsticky
       (arg-end arg-begin)
       read-only t arg-end t))
    #("  env | grep TERM" 2 3
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      5 6
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t)
      6 7
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      7 8
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t)
      8 9
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      12 13
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t)
      13 14
      (rear-nonsticky
       (arg-begin arg-end)
       arg-begin t)
      16 17
      (rear-nonsticky
       (arg-end arg-begin)
       arg-end t))
    "ssh locallhost" "Error: Failed to execute child process \"$SHELL\"
   (No such file or directory)" "ssh locallhost" "ssh locallhost"

[...]






^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#28700: 25.2; Cannot kill Eshell buffer
  2017-10-15 22:02                           ` Live System User
@ 2017-10-16  2:20                             ` Noam Postavsky
  2017-10-21 19:51                               ` Noam Postavsky
  0 siblings, 1 reply; 19+ messages in thread
From: Noam Postavsky @ 2017-10-16  2:20 UTC (permalink / raw)
  To: Live System User; +Cc: 28700

[-- Attachment #1: Type: text/plain, Size: 2358 bytes --]

tags 28700 = patch
quit

Live System User <nyc4bos@aol.com> writes:

>> Thanks, my guess is you have some string with a read-only property in
>> eshell history (probably introduced by copying from another buffer), and
>> this is tripping up eshell-write-history.
>>
>> Can you post the result of
>>
>>     M-x pp-eval-expression RET eshell-history-ring RET
>>
>> If my guess is correct there should be some strings of the form
>>
>>     #("some command" 0 11 (read-only t))
>
>       Yes.  So how do I deal wi'th?

>     #("~/" 0 1
>       (rear-nonsticky
>        (arg-begin arg-end)
>        read-only t arg-begin t)
>       1 2
>       (rear-nonsticky
>        (arg-end arg-begin)
>        read-only t arg-end t))

Ah, there we are.  I can't quite work out exactly how you managed to get
such a string, but stripping properties in eshell-write-history should
take care of it regardless.  If you evaluate the following defun in your
emacs session, it should be able to exit:

(defun eshell-write-history (&optional filename append)
  "Writes the buffer's `eshell-history-ring' to a history file.
The name of the file is given by the variable
`eshell-history-file-name'.  The original contents of the file are
lost if `eshell-history-ring' is not empty.  If
`eshell-history-file-name' is nil this function does nothing.

Useful within process sentinels.

See also `eshell-read-history'."
  (let ((file (or filename eshell-history-file-name)))
    (cond
     ((or (null file)
	  (equal file "")
	  (null eshell-history-ring)
	  (ring-empty-p eshell-history-ring))
      nil)
     ((not (file-writable-p file))
      (message "Cannot write history file %s" file))
     (t
      (let* ((ring eshell-history-ring)
	     (index (ring-length ring)))
	;; Write it all out into a buffer first.  Much faster, but
	;; messier, than writing it one line at a time.
	(with-temp-buffer
	  (while (> index 0)
	    (setq index (1- index))
	    (let ((start (point)))
              ;; Remove properties before inserting, to avoid trouble
              ;; with read-only strings (Bug#28700).
              (insert (substring-no-properties (ring-ref ring index)) ?\n)
	      (subst-char-in-region start (1- (point)) ?\n ?\177)))
	  (eshell-with-private-file-modes
	   (write-region (point-min) (point-max) file append
			 'no-message))))))))

Here's the corresponding patch:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: patch --]
[-- Type: text/x-diff, Size: 1466 bytes --]

From ffaeb09ca6ef9b3d97c8b378c1e5c2b2723dae6f Mon Sep 17 00:00:00 2001
From: Noam Postavsky <npostavs@gmail.com>
Date: Sun, 15 Oct 2017 16:41:17 -0400
Subject: [PATCH] Ignore string properties when saving eshell history
 (Bug#28700)

* lisp/eshell/em-hist.el (eshell-write-history): Remove properties
before inserting history strings.
(eshell-read-history): Remove obsolete comment.
---
 lisp/eshell/em-hist.el | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el
index 1ab3c60b2c..8084c12653 100644
--- a/lisp/eshell/em-hist.el
+++ b/lisp/eshell/em-hist.el
@@ -444,7 +444,6 @@ eshell-read-history
 	     (ignore-dups eshell-hist-ignoredups))
 	(with-temp-buffer
 	  (insert-file-contents file)
-	  ;; Save restriction in case file is already visited...
 	  ;; Watch for those date stamps in history files!
 	  (goto-char (point-max))
 	  (while (and (< count size)
@@ -488,7 +487,9 @@ eshell-write-history
 	  (while (> index 0)
 	    (setq index (1- index))
 	    (let ((start (point)))
-	      (insert (ring-ref ring index) ?\n)
+              ;; Remove properties before inserting, to avoid trouble
+              ;; with read-only strings (Bug#28700).
+              (insert (substring-no-properties (ring-ref ring index)) ?\n)
 	      (subst-char-in-region start (1- (point)) ?\n ?\177)))
 	  (eshell-with-private-file-modes
 	   (write-region (point-min) (point-max) file append
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* bug#28700: 25.2; Cannot kill Eshell buffer
  2017-10-16  2:20                             ` Noam Postavsky
@ 2017-10-21 19:51                               ` Noam Postavsky
  0 siblings, 0 replies; 19+ messages in thread
From: Noam Postavsky @ 2017-10-21 19:51 UTC (permalink / raw)
  To: Live System User; +Cc: 28700

tags 28700 fixed
close 28700 26.1
quit

Noam Postavsky <npostavs@users.sourceforge.net> writes:

> * lisp/eshell/em-hist.el (eshell-write-history): Remove properties
> before inserting history strings.

Add test and pushed to emacs-26.

[1: 9e4265ef91]: 2017-10-21 15:19:14 -0400
  Ignore string properties when saving eshell history (Bug#28700)
  https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=9e4265ef91bd659a5fac49fbe7dc34b91f89d4ed





^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2017-10-21 19:51 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-04  9:57 bug#28700: 25.2; Cannot kill Eshell buffer Live System User
2017-10-04 11:56 ` Noam Postavsky
2017-10-04 14:13   ` Live System User
2017-10-04 14:19     ` Noam Postavsky
2017-10-04 15:21       ` Live System User
2017-10-04 16:42         ` Noam Postavsky
2017-10-04 18:27           ` Live System User
2017-10-04 18:32             ` Noam Postavsky
2017-10-04 19:50               ` Live System User
2017-10-04 19:56                 ` Noam Postavsky
2017-10-04 22:12                   ` Live System User
2017-10-04 23:48                     ` Noam Postavsky
2017-10-15 19:09                       ` Live System User
2017-10-15 19:48                         ` Noam Postavsky
2017-10-15 22:02                           ` Live System User
2017-10-16  2:20                             ` Noam Postavsky
2017-10-21 19:51                               ` Noam Postavsky
2017-10-15 19:29                       ` Live System User
2017-10-05  8:09 ` martin rudalics

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).