* bug#74831: 31.0.50; scratch/igc: segfaults on startup when called under gdb
@ 2024-12-12 14:26 Gregor Zattler via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-12 14:53 ` Eli Zaretskii
0 siblings, 1 reply; 7+ messages in thread
From: Gregor Zattler via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-12 14:26 UTC (permalink / raw)
To: 74831
Dear Emacs developers, this bug is not
relevant to my everyday usage of Emacs,
so please disregard if the report is not
helpful / appropriate at the time.
I try to use scratch/igc with my
standard Emacs runtime configuration
which includes running under gdb. On
the way Emacs crashes (see below).
I can start Emacs like:
~/src/emacs-igc2/src$ ./emacs --debug-init --eval "(setq load-suffixes '(\".el\"))" --eval '(setq load-prefer-newer nil)'
this is how I collected the infos for
this very bug report. Therefore the
standard bug report infos are from this
invocation without gdb.
Below the standard bug report infos
you'll see a gdb backtrace. There are
17 occurrences of "optimized out" values.
This I do not understand since I tried
to configure the building process as
debugging friendly as possible. Hints
as how to improve this are very welcome.
There is no xbacktrace, because
scratch/igc does not provide this.
I will try to keep the gdb session open,
but this is a laptop, which I use as
daily driver...
HTH and thabks for Emacs, Gregor
In GNU Emacs 31.0.50 (build 1,
x86_64-pc-linux-gnu, cairo version
1.16.0) of 2024-12-12 built on no
Repository revision: 2e2c41fdcda7240c63e906ef0039dcf5a35d82f2
Repository branch: scratch/igc
Windowing system distributor 'The X.Org Foundation', version 11.0.12101007
System Description: Debian GNU/Linux 12 (bookworm)
Configured using:
'configure
--infodir=/usr/share/info/emacs
--with-json
--with-file-notification=yes
--with-libsystemd --with-cairo
--with-x=yes --with-x-toolkit=no
--without-toolkit-scroll-bars
--without-gsettings
--enable-check-lisp-object-type
--enable-checking=yes,glyphs,igc_debug
--with-native-compilation=no
--with-mps=debug 'CFLAGS=-ggdb3 -Og
-ffile-prefix-map=/home/grfz/src/emacs-igc2=. -fstack-protector-strong
-Wformat -Werror=format-security'
'CPPFLAGS=-I/home/grfz/mps-artifacts
-Wdate-time -D_FORTIFY_SOURCE=2'
'LDFLAGS=-L/home/grfz/mps-artifacts
-Wl,-z,relro''
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP
GNUTLS GPM HARFBUZZ JPEG LCMS2 LIBOTF
LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT
MODULES MPS NOTIFY INOTIFY OLDXMENU
PDUMPER PNG RSVG SECCOMP SOUND SQLITE3
THREADS TIFF WEBP X11 XDBE XIM XINPUT2
XPM ZLIB
Important settings:
value of $LC_ALL:
value of $LC_COLLATE: de_DE.utf8
value of $LC_CTYPE: de_DE.utf8
value of $LC_MESSAGES: POSIX
value of $LC_MONETARY: de_DE.utf8
value of $LC_NUMERIC: de_DE.utf8
value of $LC_TIME: de_DE.utf8
value of $LANG: de_DE.utf8
locale-coding-system: utf-8-unix
Major mode: Messages
Minor modes in effect:
winner-mode: t
which-key-mode: t
savehist-mode: t
ws-butler-global-mode: t
delete-selection-mode: t
which-function-mode: t
windmove-mode: t
xterm-mouse-mode: t
key-chord-mode: t
find-function-mode: t
mail-abbrevs-mode: t
override-global-mode: t
tooltip-mode: t
global-eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
minibuffer-regexp-mode: t
buffer-read-only: t
size-indication-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
Load-path shadows:
/home/grfz/src/notmuch/emacs/notmuch-lib hides /usr/local/share/emacs/site-lisp/notmuch-lib
/home/grfz/src/notmuch/emacs/coolj hides /usr/local/share/emacs/site-lisp/coolj
/home/grfz/src/notmuch/emacs/notmuch-address hides /usr/local/share/emacs/site-lisp/notmuch-address
/home/grfz/src/notmuch/emacs/notmuch-hello hides /usr/local/share/emacs/site-lisp/notmuch-hello
/home/grfz/src/notmuch/emacs/notmuch-parser hides /usr/local/share/emacs/site-lisp/notmuch-parser
/home/grfz/src/notmuch/emacs/notmuch-show hides /usr/local/share/emacs/site-lisp/notmuch-show
/home/grfz/src/notmuch/emacs/notmuch-wash hides /usr/local/share/emacs/site-lisp/notmuch-wash
/home/grfz/src/notmuch/emacs/notmuch-draft hides /usr/local/share/emacs/site-lisp/notmuch-draft
/home/grfz/src/notmuch/emacs/notmuch-tree hides /usr/local/share/emacs/site-lisp/notmuch-tree
/home/grfz/src/notmuch/emacs/notmuch-version hides /usr/local/share/emacs/site-lisp/notmuch-version
/home/grfz/src/notmuch/emacs/notmuch-jump hides /usr/local/share/emacs/site-lisp/notmuch-jump
/home/grfz/src/notmuch/emacs/notmuch-company hides /usr/local/share/emacs/site-lisp/notmuch-company
/home/grfz/src/notmuch/emacs/notmuch hides /usr/local/share/emacs/site-lisp/notmuch
/home/grfz/src/notmuch/emacs/notmuch-crypto hides /usr/local/share/emacs/site-lisp/notmuch-crypto
/home/grfz/src/notmuch/emacs/notmuch-compat hides /usr/local/share/emacs/site-lisp/notmuch-compat
/home/grfz/src/notmuch/emacs/notmuch-maildir-fcc hides /usr/local/share/emacs/site-lisp/notmuch-maildir-fcc
/home/grfz/src/notmuch/emacs/notmuch-tag hides /usr/local/share/emacs/site-lisp/notmuch-tag
/home/grfz/src/notmuch/emacs/notmuch-message hides /usr/local/share/emacs/site-lisp/notmuch-message
/home/grfz/src/notmuch/emacs/notmuch-print hides /usr/local/share/emacs/site-lisp/notmuch-print
/home/grfz/src/notmuch/emacs/notmuch-mua hides /usr/local/share/emacs/site-lisp/notmuch-mua
/home/grfz/src/notmuch/emacs/notmuch-query hides /usr/local/share/emacs/site-lisp/notmuch-query
/home/grfz/src/notmuch/emacs/notmuch-address hides /home/grfz/.config/emacs/elisp/notmuch-address
/home/grfz/src/ol-notmuch/ol-notmuch hides /home/grfz/.config/emacs/elisp/ol-notmuch
/home/grfz/.config/emacs/elpa-31.0/magit-4.1.3/magit-autorevert hides /home/grfz/.config/emacs/elpa-31.0/magit-section-4.1.3/magit-autorevert
/home/grfz/.config/emacs/elpa-31.0/transient-0.8.1/transient hides /home/grfz/src/emacs-igc2/lisp/transient
Features:
(shadow sort orgalist wcheck-mode
ecomplete mail-extr emacsbug tramp
tramp-cache time-stamp trampver
tramp-integration tramp-message
tramp-compat xdg shell tramp-loaddefs
add-log rainbow-delimiters winner
which-key ol-notmuch notmuch
notmuch-tree notmuch-jump notmuch-hello
notmuch-show notmuch-print
notmuch-crypto notmuch-mua
notmuch-message notmuch-draft
notmuch-maildir-fcc notmuch-address
notmuch-company notmuch-parser
notmuch-wash diff-mode track-changes
coolj goto-addr icalendar diary-lib
diary-loaddefs notmuch-tag crm
notmuch-lib notmuch-version
notmuch-compat hl-line compat
org-contrib org-crypt org-protocol
org-clock ob-plantuml gnus-alias advice
finder-inf savehist auth-source-pass
holidays holiday-loaddefs ws-butler
delsel modus-operandi-theme modus-themes
which-func windmove xt-mouse edmacro
kmacro key-chord org ob ob-ref ob-lob
ob-table ob-exp org-macro org-pcomplete
pcomplete org-list org-footnote
org-faces org-entities noutline outline
so-long ob-emacs-lisp org-table
org-loaddefs find-func cal-menu calendar
cal-loaddefs gnus-sum shr pixel-fill
kinsoku url-file svg dom gnus-group
mm-url gnus-undo gnus-start gnus-dbus
dbus xml gnus-cloud nnimap nnmail
mail-source imap rfc2104 utf7 nnoo
parse-time iso8601 gnus-spec gnus-int
gnus-range gnus-win gnus message
yank-media dired desktop frameset
dired-loaddefs autorevert filenotify
rfc822 mml mailabbrev sendmail gmm-utils
mailheader nnheader mail-utils range
ob-tangle ol org-src sh-script flymake
project warnings thingatpt smie treesit
shortdoc executable skeleton org-keys oc
ob-comint ob-core org-cycle org-fold
org-fold-core org-element-ast org-compat
ob-eval org-version org-macs format-spec
use-package use-package-ensure
use-package-delight use-package-diminish
use-package-bind-key bind-key
use-package-core async-autoloads
csv-mode-autoloads debbugs-autoloads
dired-git-info-autoloads
hyperbole-autoloads kotl-autoloads hact
set hhist key-chord-autoloads
magit-autoloads magit-section-autoloads
dash-autoloads org-contrib-autoloads
orgalist-autoloads paredit-autoloads
rainbow-delimiters-autoloads
transient-autoloads
wcheck-mode-autoloads info speedbar
imenu ezimage dframe
with-editor-autoloads
ws-butler-autoloads package let-alist
browse-url url url-proxy url-privacy
url-expand url-methods url-history
url-cookie generate-lisp-file url-domsuf
url-util mm-view mml-smime mml-sec epa
gnus-util time-date smime gnutls puny
dig mailcap url-handlers mm-decode
mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr url-parse auth-source eieio
eieio-core password-cache json map
byte-opt bytecomp byte-compile compile
rx text-property-search comint
easy-mmode files-x ansi-osc ansi-color
ring url-vars epg cl-extra help-mode
derived cl-seq rfc6068 epg-config subr-x
cl-macs inline gv pcase cus-edit pp
cus-load icons wid-edit cl-loaddefs
cl-lib rmc iso-transl tooltip cconv
eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode
mwheel term/x-win x-win term/common-win
x-dnd touch-screen tool-bar dnd fontset
image regexp-opt fringe tabulated-list
replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer
select scroll-bar mouse jit-lock
font-lock syntax font-core
term/tty-colors frame minibuffer nadvice
seq simple cl-generic indonesian
philippine 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 composite emoji-zwj charscript
charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray
oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp
files window text-properties overlay
sha1 md5 base64 format env code-pages
mule custom widget keymap
hashtable-print-readable backquote
threads dbusbind inotify lcms2
dynamic-setting font-render-setting
cairo xinput2 x multi-tty move-toolbar
make-network-process mps emacs)
Memory information:
((conses 24 0 0) (symbols 56 0 0) (strings 40 0 0) (string-bytes 1 0)
(vectors 24 0) (vector-slots 8 0 0) (floats 24 0 0) (intervals 64 0 0)
(buffers 992 0))
Starting program: /home/grfz/src/emacs-igc2/src/emacs --debug-init --eval "(setq load-suffixes (quote (\".el\")))" --eval "(setq load-prefer-newer nil)" -xrm --init-directory="${USER_EMACS_DIRECTORY}"
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Detaching after vfork from child process 1070205]
Program received signal SIGSEGV, Segmentation fault.
0x0000555555779816 in XSETCDR (c=..., n=n@entry=...) at ./src/lisp.h:1605
1605 *xcdr_addr (c) = n;
#0 0x0000555555779816 in XSETCDR (c=..., n=n@entry=...) at ./src/lisp.h:1605
#1 0x0000555555780f82 in read0 (readcharfun=readcharfun@entry=..., locate_syms=locate_syms@entry=false) at ./src/lread.c:4470
#2 0x00005555557813d1 in read_internal_start (stream=stream@entry=..., start=start@entry=..., end=end@entry=..., locate_syms=locate_syms@entry=false) at ./src/lread.c:2769
#3 0x00005555557814ef in Fread (stream=...) at ./src/lisp.h:1226
#4 0x000055555574ff86 in funcall_subr (subr=0x555555f96960 <Sread>, numargs=numargs@entry=1, args=args@entry=0x7fffffffb918) at ./src/eval.c:3167
#5 0x0000555555751ae4 in funcall_general (fun=..., numargs=numargs@entry=1, args=args@entry=0x7fffffffb918) at ./src/eval.c:3046
#6 0x000055555574ebce in Ffuncall (nargs=nargs@entry=2, args=args@entry=0x7fffffffb910) at ./src/eval.c:3099
#7 0x0000555555781db8 in readevalloop (readcharfun=readcharfun@entry=..., infile0=infile0@entry=0x0, sourcename=sourcename@entry=..., printflag=false, unibyte=..., unibyte@entry=..., readfun=..., readfun@entry=..., start=..., end=...) at ./src/lread.c:2518
#8 0x0000555555782ddf in Feval_buffer (buffer=..., printflag=..., filename=..., unibyte=..., do_allow_print=...) at ./src/lread.c:2613
#9 0x000055555574ffe6 in funcall_subr (subr=0x555555f969e0 <Seval_buffer>, numargs=numargs@entry=5, args=args@entry=0x7fffe2200470) at ./src/eval.c:3175
#10 0x00005555557903c1 in exec_byte_code (fun=..., fun@entry=..., args_template=<optimized out>, nargs=<optimized out>, nargs@entry=4, args=<optimized out>, args@entry=0x7fffffffbd38) at ./src/bytecode.c:828
#11 0x00005555557516f6 in funcall_lambda (fun=fun@entry=..., nargs=nargs@entry=4, arg_vector=arg_vector@entry=0x7fffffffbd38) at ./src/eval.c:3258
#12 0x0000555555751af4 in funcall_general (fun=..., numargs=numargs@entry=4, args=args@entry=0x7fffffffbd38) at ./src/eval.c:3050
#13 0x000055555574ebce in Ffuncall (nargs=nargs@entry=5, args=args@entry=0x7fffffffbd30) at ./src/eval.c:3099
#14 0x000055555578280a in Fload (file=file@entry=..., noerror=noerror@entry=..., nomessage=..., nomessage@entry=..., nosuffix=..., nosuffix@entry=..., must_suffix=..., must_suffix@entry=...) at ./src/lread.c:1616
#15 0x0000555555782c63 in save_match_data_load (file=file@entry=..., noerror=noerror@entry=..., nomessage=nomessage@entry=..., nosuffix=nosuffix@entry=..., must_suffix=must_suffix@entry=...) at ./src/lread.c:1780
#16 0x000055555574ea8b in load_with_autoload_queue (file=..., noerror=noerror@entry=..., nomessage=nomessage@entry=..., nosuffix=nosuffix@entry=..., must_suffix=must_suffix@entry=...) at ./src/eval.c:2383
#17 0x00005555557610e8 in Frequire (feature=..., filename=..., noerror=...) at ./src/fns.c:3793
#18 0x000055555574ffae in funcall_subr (subr=0x555555f94da0 <Srequire>, numargs=numargs@entry=1, args=args@entry=0x7fffe2200378) at ./src/eval.c:3171
#19 0x00005555557903c1 in exec_byte_code (fun=..., fun@entry=..., args_template=<optimized out>, nargs=<optimized out>, nargs@entry=2, args=<optimized out>, args@entry=0x7fffffffc110) at ./src/bytecode.c:828
#20 0x00005555557516f6 in funcall_lambda (fun=fun@entry=..., nargs=nargs@entry=2, arg_vector=arg_vector@entry=0x7fffffffc110) at ./src/eval.c:3258
#21 0x00005555557520ca in apply_lambda (fun=..., fun@entry=..., args=..., count=count@entry=...) at ./src/eval.c:3221
#22 0x000055555575132b in eval_sub (form=..., form@entry=...) at ./src/eval.c:2651
#23 0x00005555557515be in Fprogn (body=...) at ./src/eval.c:443
#24 0x00005555557524c7 in Flet (args=...) at ./src/eval.c:1113
#25 0x0000555555750fcc in eval_sub (form=...) at ./src/eval.c:2555
#26 0x000055555577c316 in readevalloop_eager_expand_eval (val=val@entry=..., macroexpand=macroexpand@entry=...) at ./src/lread.c:2356
#27 0x0000555555781e35 in readevalloop (readcharfun=readcharfun@entry=..., infile0=infile0@entry=0x0, sourcename=sourcename@entry=..., printflag=false, unibyte=..., unibyte@entry=..., readfun=..., readfun@entry=..., start=..., end=...) at ./src/lread.c:2538
#28 0x0000555555782ddf in Feval_buffer (buffer=..., printflag=..., filename=..., unibyte=..., do_allow_print=...) at ./src/lread.c:2613
#29 0x000055555574ffe6 in funcall_subr (subr=0x555555f969e0 <Seval_buffer>, numargs=numargs@entry=5, args=args@entry=0x7fffe22002c0) at ./src/eval.c:3175
#30 0x00005555557903c1 in exec_byte_code (fun=..., fun@entry=..., args_template=<optimized out>, nargs=<optimized out>, nargs@entry=4, args=<optimized out>, args@entry=0x7fffffffc898) at ./src/bytecode.c:828
#31 0x00005555557516f6 in funcall_lambda (fun=fun@entry=..., nargs=nargs@entry=4, arg_vector=arg_vector@entry=0x7fffffffc898) at ./src/eval.c:3258
#32 0x0000555555751af4 in funcall_general (fun=..., numargs=numargs@entry=4, args=args@entry=0x7fffffffc898) at ./src/eval.c:3050
#33 0x000055555574ebce in Ffuncall (nargs=nargs@entry=5, args=args@entry=0x7fffffffc890) at ./src/eval.c:3099
#34 0x000055555578280a in Fload (file=..., noerror=..., nomessage=..., nosuffix=..., must_suffix=...) at ./src/lread.c:1616
#35 0x000055555574ffe6 in funcall_subr (subr=0x555555f96a60 <Sload>, numargs=numargs@entry=3, args=args@entry=0x7fffe2200218) at ./src/eval.c:3175
#36 0x00005555557903c1 in exec_byte_code (fun=..., fun@entry=..., args_template=<optimized out>, nargs=<optimized out>, nargs@entry=0, args=<optimized out>, args@entry=0x7fffffffcc08) at ./src/bytecode.c:828
#37 0x00005555557516f6 in funcall_lambda (fun=fun@entry=..., nargs=nargs@entry=0, arg_vector=arg_vector@entry=0x7fffffffcc08) at ./src/eval.c:3258
#38 0x0000555555751af4 in funcall_general (fun=..., numargs=numargs@entry=0, args=args@entry=0x7fffffffcc08) at ./src/eval.c:3050
#39 0x000055555574ebce in Ffuncall (nargs=nargs@entry=1, args=args@entry=0x7fffffffcc00) at ./src/eval.c:3099
#40 0x00005555557502d4 in call0 (fn=...) at ./src/lisp.h:3780
#41 Fhandler_bind_1 (nargs=<optimized out>, args=0x7fffe2200160) at ./src/eval.c:1483
#42 0x00005555557500e8 in funcall_subr (subr=0x555555f93620 <Shandler_bind_1>, numargs=numargs@entry=3, args=args@entry=0x7fffe2200160) at ./src/eval.c:3190
#43 0x00005555557903c1 in exec_byte_code (fun=..., fun@entry=..., args_template=<optimized out>, nargs=<optimized out>, nargs@entry=0, args=<optimized out>, args@entry=0x7fffffffce70) at ./src/bytecode.c:828
#44 0x00005555557516f6 in funcall_lambda (fun=fun@entry=..., nargs=nargs@entry=0, arg_vector=arg_vector@entry=0x7fffffffce70) at ./src/eval.c:3258
#45 0x00005555557520ca in apply_lambda (fun=..., fun@entry=..., args=..., count=count@entry=...) at ./src/eval.c:3221
#46 0x000055555575132b in eval_sub (form=..., form@entry=...) at ./src/eval.c:2651
#47 0x0000555555752bd0 in Feval (form=..., lexical=lexical@entry=...) at ./src/eval.c:2463
#48 0x00005555556c2f11 in top_level_2 () at ./src/lisp.h:1226
#49 0x000055555574d78f in internal_condition_case (bfun=bfun@entry=0x5555556c2eee <top_level_2>, handlers=..., handlers@entry=..., hfun=hfun@entry=0x5555556c9fb2 <cmd_error>) at ./src/eval.c:1618
#50 0x00005555556c1a0d in top_level_1 (ignore=..., ignore@entry=...) at ./src/lisp.h:1226
#51 0x000055555574d69a in internal_catch (tag=..., tag@entry=..., func=func@entry=0x5555556c19bb <top_level_1>, arg=..., arg@entry=...) at ./src/eval.c:1297
#52 0x00005555556c1955 in command_loop () at ./src/lisp.h:1226
#53 0x00005555556c9ac8 in recursive_edit_1 () at ./src/keyboard.c:760
#54 0x00005555556c9e6a in Frecursive_edit () at ./src/keyboard.c:843
#55 0x00005555556c1372 in main (argc=8, argv=0x7fffffffd278) at ./src/emacs.c:2646
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#74831: 31.0.50; scratch/igc: segfaults on startup when called under gdb
2024-12-12 14:26 bug#74831: 31.0.50; scratch/igc: segfaults on startup when called under gdb Gregor Zattler via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-12 14:53 ` Eli Zaretskii
2024-12-12 16:15 ` Gregor Zattler via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2024-12-12 14:53 UTC (permalink / raw)
To: Gregor Zattler; +Cc: 74831
> Date: Thu, 12 Dec 2024 15:26:32 +0100
> From: Gregor Zattler via "Bug reports for GNU Emacs,
> the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x0000555555779816 in XSETCDR (c=..., n=n@entry=...) at ./src/lisp.h:1605
> 1605 *xcdr_addr (c) = n;
So what is the value of xcdr_addr(s) here? It looks like
dereferencing it causes the segfault, so its value might give us some
hints.
Also, where did you start GDB? It looks like you started it not from
the Emacs' src/ directory, in which case please say
(gdb) source /path/to/emacs/src/.gdbinit
before running Emacs. That's because the MPS library uses SIGSEGV for
its memory barriers, and .gdbinit there makes sure such SIGSEGVs don't
stop Emacs. IOW, this could be a false positive, not a real segfault.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#74831: 31.0.50; scratch/igc: segfaults on startup when called under gdb
2024-12-12 14:53 ` Eli Zaretskii
@ 2024-12-12 16:15 ` Gregor Zattler via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-12 16:43 ` Eli Zaretskii
0 siblings, 1 reply; 7+ messages in thread
From: Gregor Zattler via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-12 16:15 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 74831
Hi Eli,
* Eli Zaretskii <eliz@gnu.org> [2024-12-12; 16:53 +02]:
>> Date: Thu, 12 Dec 2024 15:26:32 +0100
>> From: Gregor Zattler via "Bug reports for GNU Emacs,
>> the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>>
>> Program received signal SIGSEGV, Segmentation fault.
>> 0x0000555555779816 in XSETCDR (c=..., n=n@entry=...) at ./src/lisp.h:1605
>> 1605 *xcdr_addr (c) = n;
>
> So what is the value of xcdr_addr(s) here? It looks like
> dereferencing it causes the segfault, so its value might give us some
> hints.
sorry, I'm clueless:
(gdb) print xcdr_addr
No symbol "xcdr_addr" in current context.
> Also, where did you start GDB? It looks like you started it not from
> the Emacs' src/ directory,
I started it in the Emacs src directory::
(gdb) pwd
Working directory /home/grfz/src/emacs-igc2/src.
because you once told me to do so for
gdb.
Anyway...
> in which case please say
>
> (gdb) source /path/to/emacs/src/.gdbinit
I now added
-ex "source /home/grfz/src/emacs-igc2/src/.gdbinit"
to my gdb invocation and tried again.
Now there are plenty of
Program received signal SIGSEGV, Segmentation fault.
lines in GDBs output but Emacs runs and
and (not so far) functions correct.
> before running Emacs. That's because the MPS library uses SIGSEGV for
> its memory barriers, and .gdbinit there makes sure such SIGSEGVs don't
> stop Emacs. IOW, this could be a false positive, not a real segfault.
That seemed to be the case.
Regards, Gregor
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#74831: 31.0.50; scratch/igc: segfaults on startup when called under gdb
2024-12-12 16:15 ` Gregor Zattler via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-12 16:43 ` Eli Zaretskii
2024-12-12 16:53 ` Gregor Zattler via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2024-12-12 16:43 UTC (permalink / raw)
To: Gregor Zattler; +Cc: 74831
> From: Gregor Zattler <telegraph@gmx.net>
> Cc: 74831@debbugs.gnu.org
> Date: Thu, 12 Dec 2024 17:15:45 +0100
>
> >> Program received signal SIGSEGV, Segmentation fault.
> >> 0x0000555555779816 in XSETCDR (c=..., n=n@entry=...) at ./src/lisp.h:1605
> >> 1605 *xcdr_addr (c) = n;
> >
> > So what is the value of xcdr_addr(s) here? It looks like
> > dereferencing it causes the segfault, so its value might give us some
> > hints.
>
> sorry, I'm clueless:
>
> (gdb) print xcdr_addr
> No symbol "xcdr_addr" in current context.
No, you should say
(gdb) print xcdr_addr(c)
> > Also, where did you start GDB? It looks like you started it not from
> > the Emacs' src/ directory,
>
> I started it in the Emacs src directory::
>
> (gdb) pwd
> Working directory /home/grfz/src/emacs-igc2/src.
>
> because you once told me to do so for
> gdb.
That's strange, because if you did that, the backtrace command would
have shown a Lisp backtrace as well, which didn't happen.
> I now added
>
> -ex "source /home/grfz/src/emacs-igc2/src/.gdbinit"
>
> to my gdb invocation and tried again.
> Now there are plenty of
>
> Program received signal SIGSEGV, Segmentation fault.
That's expected.
> lines in GDBs output but Emacs runs and
> and (not so far) functions correct.
>
> > before running Emacs. That's because the MPS library uses SIGSEGV for
> > its memory barriers, and .gdbinit there makes sure such SIGSEGVs don't
> > stop Emacs. IOW, this could be a false positive, not a real segfault.
>
> That seemed to be the case.
Yes.
I think we can close this bug now.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#74831: 31.0.50; scratch/igc: segfaults on startup when called under gdb
2024-12-12 16:43 ` Eli Zaretskii
@ 2024-12-12 16:53 ` Gregor Zattler via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-12 18:56 ` Eli Zaretskii
0 siblings, 1 reply; 7+ messages in thread
From: Gregor Zattler via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-12 16:53 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 74831
Hi Eli,
* Eli Zaretskii <eliz@gnu.org> [2024-12-12; 18:43 +02]:
>> From: Gregor Zattler <telegraph@gmx.net>
>> Cc: 74831@debbugs.gnu.org
>> Date: Thu, 12 Dec 2024 17:15:45 +0100
>>
>> >> Program received signal SIGSEGV, Segmentation fault.
>> >> 0x0000555555779816 in XSETCDR (c=..., n=n@entry=...) at ./src/lisp.h:1605
>> >> 1605 *xcdr_addr (c) = n;
>> >
>> > So what is the value of xcdr_addr(s) here? It looks like
>> > dereferencing it causes the segfault, so its value might give us some
>> > hints.
>>
>> sorry, I'm clueless:
>>
>> (gdb) print xcdr_addr
>> No symbol "xcdr_addr" in current context.
>
> No, you should say
>
> (gdb) print xcdr_addr(c)
this I also tried:
(gdb) print xcdr_addr(c)
No symbol "xcdr_addr" in current context.
>> > Also, where did you start GDB? It looks like you started it not from
>> > the Emacs' src/ directory,
>>
>> I started it in the Emacs src directory::
>>
>> (gdb) pwd
>> Working directory /home/grfz/src/emacs-igc2/src.
>>
>> because you once told me to do so for
>> gdb.
>
> That's strange, because if you did that, the backtrace command would
> have shown a Lisp backtrace as well, which didn't happen.
>
>> I now added
>>
>> -ex "source /home/grfz/src/emacs-igc2/src/.gdbinit"
>>
>> to my gdb invocation and tried again.
>> Now there are plenty of
>>
>> Program received signal SIGSEGV, Segmentation fault.
>
> That's expected.
>
>> lines in GDBs output but Emacs runs and
>> and (not so far) functions correct.
>>
>> > before running Emacs. That's because the MPS library uses SIGSEGV for
>> > its memory barriers, and .gdbinit there makes sure such SIGSEGVs don't
>> > stop Emacs. IOW, this could be a false positive, not a real segfault.
>>
>> That seemed to be the case.
>
> Yes.
>
> I think we can close this bug now.
Fine with me.
Regards, gregor
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#74831: 31.0.50; scratch/igc: segfaults on startup when called under gdb
2024-12-12 16:53 ` Gregor Zattler via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-12 18:56 ` Eli Zaretskii
2024-12-13 8:59 ` Pip Cet via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2024-12-12 18:56 UTC (permalink / raw)
To: Gregor Zattler; +Cc: 74831-done
> From: Gregor Zattler <telegraph@gmx.net>
> Cc: 74831@debbugs.gnu.org
> Date: Thu, 12 Dec 2024 17:53:50 +0100
>
> >> >> 1605 *xcdr_addr (c) = n;
> >> >
> >> > So what is the value of xcdr_addr(s) here? It looks like
> >> > dereferencing it causes the segfault, so its value might give us some
> >> > hints.
> >>
> >> sorry, I'm clueless:
> >>
> >> (gdb) print xcdr_addr
> >> No symbol "xcdr_addr" in current context.
> >
> > No, you should say
> >
> > (gdb) print xcdr_addr(c)
>
> this I also tried:
>
> (gdb) print xcdr_addr(c)
> No symbol "xcdr_addr" in current context.
I guess you were in the wrong call-stack frame, then?
> > I think we can close this bug now.
>
>
> Fine with me.
Done.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#74831: 31.0.50; scratch/igc: segfaults on startup when called under gdb
2024-12-12 18:56 ` Eli Zaretskii
@ 2024-12-13 8:59 ` Pip Cet via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 0 replies; 7+ messages in thread
From: Pip Cet via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-13 8:59 UTC (permalink / raw)
To: 74831; +Cc: eliz, telegraph
"Eli Zaretskii" <eliz@gnu.org> writes:
>> > I think we can close this bug now.
>>
>> Fine with me.
>
> Done.
Sorry to respond to a closed bug report, but I just pushed a change to
README-IGC which mentions the use of SIGSEGV by MPS. While there is
more to be said on the topic (users of lldb on non-macOS systems have to
change signal disposition manually, right now; and solaris/sparc gdb
loses the siginfo information when receiving a SIGSEGV, which means MPS
builds on those systems happen to work but cannot be debugged with gdb),
I've tried to keep it short.
Thanks again for the report!
Pip
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-12-13 8:59 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-12 14:26 bug#74831: 31.0.50; scratch/igc: segfaults on startup when called under gdb Gregor Zattler via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-12 14:53 ` Eli Zaretskii
2024-12-12 16:15 ` Gregor Zattler via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-12 16:43 ` Eli Zaretskii
2024-12-12 16:53 ` Gregor Zattler via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-12 18:56 ` Eli Zaretskii
2024-12-13 8:59 ` Pip Cet via Bug reports for GNU Emacs, the Swiss army knife of text editors
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.