I didn't find the BT that helpful... Although it's possible I've completely
forgotten everything I previously knew about gdb and I need to relearn
everything from the ground up.
I'm perplexed by the BT because the first of the steps it shows on the way
to the segfault is for main.cpp:79.

> (gdb) bt
> #0  xcb_get_setup (c=0x0) at
/usr/src/debug/libxcb-1.13.1-7.fc34.x86_64/src/xcb_conn.c:314
> #1  0x00007ffff7f77bd0 in xcb_ewmh_init_atoms (c=<optimized out>,
ewmh=0x756540) at
/usr/src/debug/xcb-util-wm-0.4.1-20.fc34.x86_64/ewmh/ewmh.c:605
> #2  0x000000000048db12 in LXCB::LXCB (this=this@entry=0x756540) at
../libLumina/LuminaX11.cpp:44
> #3  0x00000000004ab991 in LSession::LSession (this=this@entry=0x7fffffffd9e0,
argc=@0x7fffffffd9ac: 1, argv=argv@entry=0x7fffffffdc18) at LSession.cpp:60
> #4  0x0000000000445555 in main (argc=<optimized out>,
argv=0x7fffffffdc18) at main.cpp:79

OK Great, except the main.cpp of the program I'm debugging only has 27
lines.
https://github.com/lumina-desktop/lumina/blob/master/src-qt5/desktop-utils/lumina-screenshot/main.cpp
So I'm guessing that's a differnet main, and thus I need to figure out how
I get from the main in the utility I'm running to whatever that main is.

This is why I was hoping I could just dump everything to a file and then
walk the entire process step by step.  Yes I know I'd get a ton of info I
dont need, but at least then I dont have any questions as to what led to
what.

Thanks for the info, I'll see if I glean anything from the links you posted.

On Tue, Dec 28, 2021 at 8:48 AM Ben Beasley <c...@musicinmybrain.net> wrote:

> Is the backtrace not helpful in figuring out where to set up
> breakpoints? As in, “gdb foo”, then “run”, wait for the crash, and type
> “bt”?
>
> The darktable development documentation suggests[1] the following to log
> useful backtraces:
>
>     |$ gdb darktable ... crash dt here ... (gdb) set pagination off
>     (gdb) set logging file gdb.txt (gdb) set logging on (gdb) thread
>     apply all bt full|
>
> If you need to do this non-interactively, you can combine it with gdb’s
> batch mode. Strangely, I have a spec file that demonstrates this [2].
> The debugbreak package is a header-only C library that implements
> programmatic breakpoints, so the natural way to test it is with the
> debugger.
>
> Hopefully some of that is helpful.
>
> – Ben
>
> [1] https://www.darktable.org/development/
>
> [2]
>
> https://src.fedoraproject.org/rpms/debugbreak/blob/e009ccfac2b8e05a6018921ed6d3e732837a9e52/f/debugbreak.spec#_62
>
> On 12/28/21 08:08, JT wrote:
> > Hey all,
> > I havent used gdb in a while, so I'm trying to knock the rust off my
> > knowledge and pick up a few more skills.
> > I'm trying to track down an issue in the Lumina Desktop. One of the
> > utilities (lumina-screenshot) segfaults when starting up and I'm
> > trying to deduce why.  The problem is that it gets pretty far into the
> > program starting before it finally dies and I havent been able to step
> > through gdb enough manually to find that point.
> >
> > Is there a way to run gdb in a capture mode of some kind and dump the
> > output entirely like I can do with strace?
> > I kinda need to know where it's crashing to have an idea of where to
> > set up breakpoints.
> >
> > Unless my memory is off, I was sure there was a way to do this but I
> > just can't seem to remember or figure out how to do it.
> >
> > Any pointers?  Thanks!
> >
> > JT
> >
> > _______________________________________________
> > devel mailing list -- devel@lists.fedoraproject.org
> > To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> > Fedora Code of Conduct:
> https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> > List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> > List Archives:
> https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
> > Do not reply to spam on the list, report it:
> https://pagure.io/fedora-infrastructure
> _______________________________________________
> devel mailing list -- devel@lists.fedoraproject.org
> To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> Fedora Code of Conduct:
> https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives:
> https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
> Do not reply to spam on the list, report it:
> https://pagure.io/fedora-infrastructure
>
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure

Reply via email to