For what it's worth, I found this to be the line that causes the program
segfault:

249:      qDebug() << "value coming out ComputeValue: " << newValue;


I was doing some experimenting last night and the last thing I tried was
this:

249:      qDebug() << "value coming out ComputeValue: " <<
QString::number(newValue);


With this change I did notice that, in the console, the messages "value
coming out of ComputeValue: 0" .. I found that interesting, as I do not
recollect seeing messages with a value < 1 before there but my memory could
serve me bad there.

Sadly, it was no solution as  the program still crashed at that same spot,
when very intensively using the M-Audio X-Session Pro MIDI controller's
crossfader.

I wonder if there is anyone else experiencing such crashes?

Cheers,
NG

2009/3/15 Navaho Gunleg <[email protected]>

> OK scratch that one (no pun intended)
>
> It seemed to go very well for a very long while but of course, the moment
> you send a patch thinking you fixed something, you get proven wrong :-)
>
> So there still seems to be some fishiness going on in the
> MidiObject::receive( ) call. Here is the backtrace:
>
> (gdb) backtrace
> #0  0xb6a32a28 in vfprintf () from /lib/tls/i686/cmov/libc.so.6
> #1  0xb6a377a0 in ?? () from /lib/tls/i686/cmov/libc.so.6
> #2  0xb6a32c6e in vfprintf () from /lib/tls/i686/cmov/libc.so.6
> #3  0xb6aeb2d7 in __fprintf_chk () from /lib/tls/i686/cmov/libc.so.6
> #4  0x080fdf50 in MessageHandler (type=QtDebugMsg, input=0xa95806c8
> "MidiObject::receive() miditype:  \"0xB0\"  ch:  \"0x01\" , ctrl:  \"0x11\"
> , val:  \"0x03\" ")
>     at /usr/include/bits/stdio2.h:99
> #5  0xb6e36735 in qt_message_output () from
> /usr/share/qt4/lib/libQtCore.so.4
> #6  0x081052fb in MidiObject::receive (this=0x8e59558, status=CTRL_CHANGE,
> channel=0 '\0', control=-12 '�, value=3 '\003', device=
>       {static null = {<No data fields>}, static shared_null = {ref =
> {_q_value = 7538}, alloc = 0, size = 0, data = 0x83a37fa, clean = 0,
> simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0,
> array = {0}}, static shared_empty = {ref = {_q_value = 362}, alloc = 0, size
> = 0, data = 0xb70149ce, clean = 0, simpletext = 0, righttoleft = 0,
> asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xae2c9364,
> static codecForCStrings = 0x0}) at /usr/share/qt4/include/QtCore/qdebug.h:79
> #7  0x081c7dd1 in MidiObjectALSASeq::run (this=0x8e59558) at
> src/midiobjectalsaseq.cpp:300
> #8  0xb6e3e6ae in ?? () from /usr/share/qt4/lib/libQtCore.so.4
> #9  0xb7c6650f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
> #10 0xb6ad4a0e in clone () from /lib/tls/i686/cmov/libc.so.6
>
>
> Regards,
> NG
>
> 2009/3/15 Navaho Gunleg <[email protected]>
>
> I observed segmentation faults at 'random' moments while using the
>> crossfader a lot (X-Audio Session Pro) which I was able to traceback to
>> invalid data being passed a qDebug( ) in the MidiObject::receive( ) routine.
>>
>> Apparently, for some weird reason, newValue can be invalid -- causing a
>> crash.
>>
>> The qDebug( ) is now skipped if !newValue and also the call to
>> p->queueFromMidi( ) if this is the case, but I am unsure if that's really
>> OK.
>>
>> This seems to fix this segfault and, importantly, seems not to break any
>> other stuff (for me). :)
>>
>> Cheers,
>> NG
>>
>
>
------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to