You are here

Add new comment

rncbc's picture

you made it! i'm doomed! :D i knew it, soon or later you'd come with such a bang! :o)

i sure guess it's way better sooner than later.

let's get it figured out...

as there's no hard limits that i can reckon in qtractor, this must be related to some code path never tested before or, at least, never stressed that way before. you probably know it better ;)

first question is sacramental as in every software bug call: is that someway reproducible? in one least number of steps?

let me put it in another way: can you build, yet another session, with the same or similar cardinality of buses and tracks, that will crash as bad on the spot?

please note, that this deterministic bug behavior that i'm asking for, is juice for proper debugging (in a somewhat forensic sense). once we get nearer to that status, the easier it gets to aim and squash the bug.

don't worry. i know my code is not that good. it takes ages to get to nirvana, whatever that is. i seriously doubt whether there's one single piece of software that ever reached that state. some are good, some are very good, some are just good enough :) software goodness is just in the use of the beholder <:)

yada yada

[EDIT:]once you get some kind of reproducible crash behavior, it helps having a core dump telling all its post-mortem secrets... yeah, what follows has already been spoken, but i just can't help it; i just ain't perfect :)

as my friend mario use to say, letsa-go:

  1. Rebuild it all from scratch, with:
      ./configure --enable-debug && make
    
  2. Enable core dumps in a shell session:
      ulimit -c unlimited
    
  3. From the same shell command line, run the program until it crashes badly. You'll see something like this in the output when it happens:
      Segmentation fault (core dumped)
    
  4. Locate the dumped core file. Depending on your environmental settings it might be just named core or something like core.1234 (1234 is the process-id number of the crashing program) located on the last directory the program was current.
  5. Load the core dump file into gdb
      gdb ./qtractor /path/to/core
    

    at the gdb prompt just enter:

      gdb> bt
    

    or

      gdb> thread apply all bt
    

    and send the whole output to me.

HTH
--
rncbc aka Rui Nuno Capela