I have a followup gdb 101 question:
I thought I would improve the debug capability by adding the flags "--enable-checking='yes,glyphs' --enable-check-lisp-object-type" to ./configure as per etc/DEBUG. I did not have those 2 flags earlier. But after rebuilding using the suggested options, the conditional breakpoints do not work. I also noticed that earlier "p error_symbol" gave something like,
$1 = 41328
Now it gives something like,
Also, when earlier I saw:
Breakpoint 3, Fsignal (error_symbol=19056, data=16197139) at eval.c:1471
, now I see instead:
Breakpoint 3, Fsignal (error_symbol=..., data=...) at eval.c:1471
(those numbers for error_symbol and data are literally replaced with "...")
=====
(emacs:22439): GLib-GIO-CRITICAL **: g_settings_schema_source_lookup: assertion 'source != NULL' failed
Breakpoint 3, Fsignal (error_symbol=..., data=...) at eval.c:1471
1471 = (NILP (error_symbol) ? Fcar (data) : error_symbol);
(gdb) p error_symbol
$1 = {
i = 41328
}
(gdb) xsymbol
$2 = (struct Lisp_Symbol *) 0xdc3ee0 <lispsym+41328>
"scan-error"
(gdb) condition 3 error_symbol!=41328
(gdb) c
Continuing.
Error in testing breakpoint condition:
Structure has no component named operator!=.
Error in testing breakpoint condition:
Structure has no component named operator!=.
Breakpoint 3, Fsignal (error_symbol=..., data=...) at eval.c:1471
1471 = (NILP (error_symbol) ? Fcar (data) : error_symbol);
Here's my new ./configure command:
./configure options:
--with-modules --prefix=/home/kmodi/usr_local/apps/6/emacs/emacs-25 --enable-checking=yes,glyphs --enable-check-lisp-object-type 'CPPFLAGS=-fgnu89-inline -I/home/kmodi/usr_local/6/include -I/usr/include/freetype2 -I/usr/include' 'CFLAGS=-ggdb3 -O0' 'CXXFLAGS=-ggdb3 -O0' 'LDFLAGS=-L/home/kmodi/usr_local/6/lib -L/home/kmodi/usr_local/6/lib64 -ggdb3' PKG_CONFIG_PATH=/home/kmodi/usr_local/6/lib/pkgconfig:/home/kmodi/usr_local/6/lib64/pkgconfig:/cad/adi/apps/gnu/linux/x86_64/6/lib/pkgconfig:/cad/adi/apps/gnu/linux/x86_64/6/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:/lib/pkgconfig:/lib64/pkgconfig
For now, I will rebuild emacs without "--enable-checking='yes,glyphs' --enable-check-lisp-object-type". But it would be good to know why those flags affected gdb (when etc/DEBUG says that those should not), and also why didn't conditional breakpoints work in this case. (I hope to get the old conditional-breakpoint-working-self back once I finish rebuilding without those flags.)