Bug#1016630: guile-3.0: gdb guile results in SIGSEGV before guile even starts!

2022-08-17 Thread Rob Browning


Linas Vepstas  writes:
> Wow! Well, I feel kind of dumb to not actually have tried that; I have been
> trained that SIGSEGV is a full stop, and it's pointless to try to
> continue.  Thank you!

Of course, and I might well not have assumed otherwise either -- but
yeah, I have the impression that libgc does some "interesting" things.

> I can't imagine I will be the first and only one to be surprised by this
> change of behavior, but I can't think of a good solution to propose, just
> right now.

Agreed, I suppose we could consider adding it to a README.Debian, but
not sure people (including me) would notice it in the relvant
circumstances.

-- 
Rob Browning
rlb @defaultvalue.org and @debian.org
GPG as of 2011-07-10 E6A9 DA3C C9FD 1FF8 C676 D2C4 C0F0 39E9 ED1B 597A
GPG as of 2002-11-03 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4



Bug#1016630: guile-3.0: gdb guile results in SIGSEGV before guile even starts!

2022-08-17 Thread Linas Vepstas
> ```
> > $ gdb guile
> > GNU gdb (Debian 12.1-3) 12.1
> > ... etc ...
> > Reading symbols from guile...
> > (No debugging symbols found in guile)
> > (gdb) r
> > Starting program: /usr/bin/guile
> > [Thread debugging using libthread_db enabled]
> > Using host libthread_db library
> "/lib/x86_64-linux-gnu/libthread_db.so.1".
> >
> > Program received signal SIGSEGV, Segmentation fault.
>
> According (and thanks) to mwette, this is actually expected behavior:
> https://hboehm.info/gc/debugging.html
>
> And just continuing via "c" should work.
>

Wow! Well, I feel kind of dumb to not actually have tried that; I have been
trained that SIGSEGV is a full stop, and it's pointless to try to
continue.  Thank you!

I can't imagine I will be the first and only one to be surprised by this
change of behavior, but I can't think of a good solution to propose, just
right now.
-- Lnas


Bug#1016630: guile-3.0: gdb guile results in SIGSEGV before guile even starts!

2022-08-11 Thread Rob Browning
Linas Vepstas  writes:

> Package: guile-3.0
> Version: 3.0.8-2
> Severity: normal
> X-Debbugs-Cc: linasveps...@gmail.com
>
> Dear Maintainer,
>
> To debug large complex programs that use guile extensions, I run `gdb
> guile` regularly. This does not work w/ current version in testing. I
> get this:
> ```
> $ gdb guile
> GNU gdb (Debian 12.1-3) 12.1
> ... etc ...
> Reading symbols from guile...
> (No debugging symbols found in guile)
> (gdb) r
> Starting program: /usr/bin/guile 
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
>
> Program received signal SIGSEGV, Segmentation fault.

According (and thanks) to mwette, this is actually expected behavior:
https://hboehm.info/gc/debugging.html

And just continuing via "c" should work.

It looks like guile's source tree gdbinit has the handlers for SIGPWR
and SIGXCPU, but not SIGBUS or SIGSEGV.

Hope this helps

(I've marked this bug as done, but please feel free to re-open it if
 that doesn't sound reasonable to you yet.)

-- 
Rob Browning
rlb @defaultvalue.org and @debian.org
GPG as of 2011-07-10 E6A9 DA3C C9FD 1FF8 C676 D2C4 C0F0 39E9 ED1B 597A
GPG as of 2002-11-03 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4



Bug#1016630: guile-3.0: gdb guile results in SIGSEGV before guile even starts!

2022-08-04 Thread Linas Vepstas
Package: guile-3.0
Version: 3.0.8-2
Severity: normal
X-Debbugs-Cc: linasveps...@gmail.com

Dear Maintainer,

To debug large complex programs that use guile extensions, I run `gdb
guile` regularly. This does not work w/ current version in testing. I
get this:
```
$ gdb guile
GNU gdb (Debian 12.1-3) 12.1
... etc ...
Reading symbols from guile...
(No debugging symbols found in guile)
(gdb) r
Starting program: /usr/bin/guile 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x77c3707a in GC_find_limit_with_bound () from 
/lib/x86_64-linux-gnu/libgc.so.1
(gdb) bt
#0  0x77c3707a in GC_find_limit_with_bound ()
   from /lib/x86_64-linux-gnu/libgc.so.1
#1  0x77c37162 in GC_init_linux_data_start ()
   from /lib/x86_64-linux-gnu/libgc.so.1
#2  0x77c355df in GC_init () from /lib/x86_64-linux-gnu/libgc.so.1
#3  0x77ec522a in ?? () from /lib/x86_64-linux-gnu/libguile-3.0.so.1
#4  0x77f287af in ?? () from /lib/x86_64-linux-gnu/libguile-3.0.so.1
#5  0x77f28b66 in ?? () from /lib/x86_64-linux-gnu/libguile-3.0.so.1
#6  0x77c350e7 in GC_call_with_stack_base ()
   from /lib/x86_64-linux-gnu/libgc.so.1
#7  0x77f23e68 in scm_with_guile ()
   from /lib/x86_64-linux-gnu/libguile-3.0.so.1
#8  0x77ec5185 in scm_boot_guile ()
   from /lib/x86_64-linux-gnu/libguile-3.0.so.1
#9  0x510f in ?? ()
#10 0x77cb181d in __libc_start_main (main=0x50b0, argc=1, 
argv=0x7fffe198, init=, fini=, 
rtld_fini=, stack_end=0x7fffe188)
at ../csu/libc-start.c:332
#11 0x51aa in ?? () 
```
Looking at the above stack trace, I suspect the issue is actually with
bdwgc ... unless guile is doing something wacky with stacks before
initing bdwgc.  I guess this could also be a gdb bug!??

Of course, guile itself works just fine -- it only crashes when starting
guile from gdb! So that is ... confusingly bizarre. 

For me personally, tis is a critical bug; I depend strongly on having
gdb working correctly.

-- linas

-- System Information:
Debian Release: bookworm/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 5.18.15 (SMP w/4 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages guile-3.0 depends on:
ii  guile-3.0-libs  3.0.8-2

guile-3.0 recommends no packages.

Versions of packages guile-3.0 suggests:
pn  guile-3.0-doc  

-- no debconf information