Page 1 of 1

0201 error with latest firmware - debugging

Posted: Wed Jul 01, 2015 8:39 pm
by rj200
I recently tried the latest firmware (from Feb 2014). It randomly crashes with an unexpected error 0201. There doesn't seem to be any one action that causes it; it's pretty random.

Anyway - I found that it drops a core-dump file in .Pacemaker/dumps on the device!

I copied these and the firmware onto my Linux laptop. There I was able to open them in gdb. The process was:

sudo mkdir /pmds
sudo mount -o loop ~/Downloads/dfw_146061537.pfw /pmds/
sudo mkdir /pacemaker-cramfs
sudo mount -o loop /pmds/boot/cramfs.little /pacemaker-cramfs/

sudo apt-get install gdb-multiarch
gdb-multiarch
(gdb) set gnutarget elf32-littlearm
(gdb) file /pmds/bin/pmplayer
(gdb) set sysroot /pacemaker-cramfs
(gdb) target core ~/core_1.pmplayer.1729.146061537

This then tells us why it died:
Program terminated with signal SIGILL, Illegal instruction.

You can get a backtrace of the stack:
(gdb) bt
#0 0xbef6267c in ?? ()
#1 0x003b308c in ?? ()
#2 0x003b4280 in du::TextBox::paint(screener::JUCERGBRasterizer&, juce::String const*, int, int, unsigned int, bool) ()
#3 0x003d3a98 in TrackArea::renderTime(screener::JUCERGBRasterizer&, du::TextBox&, unsigned int, bool&) ()
#4 0x003d6ac4 in UpperStatusArea::render(screener::JUCERGBRasterizer&) ()
#5 0x00396470 in SubWindow::paint(juce::Graphics&) ()
#6 0x0077a748 in juce::Component::paintEntireComponent(juce::Graphics&) ()
#7 0x0077a684 in juce::Component::paintEntireComponent(juce::Graphics&) ()
#8 0x0077a684 in juce::Component::paintEntireComponent(juce::Graphics&) ()
#9 0x0078ac4c in juce::ComponentPeer::handlePaint(juce::LowLevelGraphicsContext&) ()
#10 0x00775ab4 in juce::LinuxRepaintManager::performAnyPendingRepaintsNow() ()
#11 0x00775b48 in juce::repaintAllComponentPeers() ()
#12 0x007ba1c8 in juce::IHpTimerInternal::dispatch() ()
#13 0x007b9610 in juce::InactivityThread::timerMillisecsUntilFire() ()
#14 0x00774124 in juce::juce_dispatchNextMessageOnSystemQueue(bool) ()
#15 0x007b825c in juce::MessageManager::dispatchNextMessage(bool, bool*) ()
#16 0x007b8328 in juce::MessageManager::runDispatchLoop() ()
#17 0x007781cc in juce::JUCEApplication::main(juce::String&, juce::JUCEApplication*) ()
#18 0x00778470 in juce::JUCEApplication::main(int, char**, juce::JUCEApplication---Type <return> to continue, or q <return> to quit---
*) ()
#19 0x0037de68 in main ()

We can also view the registers:
(gdb) info all-registers
r0 0x0 0
r1 0x44e006a8 1155532456
r2 0x44e006ac 1155532460
r3 0xbe936650 3197331024
r4 0x44e006ac 1155532460
r5 0xbe936660 3197331040
r6 0x44e006c0 1155532480
r7 0x44e006a8 1155532456
r8 0x2007 8199
r9 0xc240ec 12730604
r10 0x0 0
r11 0xbe93665c 3197331036
r12 0x44e006ac 1155532460
sp 0xbe936560 0xbe936560
lr 0x3b308c 3879052
pc 0xbe93667c 0xbe93667c
cpsr 0x20000010 536870928



The stack trace looks basically the same for each crash. From this I can guess that it is a bug in the GUI code. The 'Illegal Instruction' could be relevant; perhaps some code for a later version of the ARM chip has accidentelly been included?

How is the best way to get this to a developer who might fix it? Without source code I can't do much more myself. Is there anyone I could send the core dumps to?

Re: 0201 error with latest firmware - debugging

Posted: Wed Jul 08, 2015 10:00 am
by Sox
Well done on the investigation so far. First time we've seen a crash dump such as this.

I have Daniel (the developer) and Jonas' email addresses so if you send them to me I will forward them on. I will pm you my email address

Sox

Re: 0201 error with latest firmware - debugging

Posted: Wed Jul 08, 2015 5:28 pm
by rj200
I've sent them. It's a 22GB zip file attachment. Let me know if it doesn't arrive.

Re: 0201 error with latest firmware - debugging

Posted: Sat Jul 11, 2015 9:56 pm
by Sox
That's rediculous. 220Gb zipped? Your Pacemaker woukd only hold 220 before zipping. Email will never send that much, and I don't want anything that size.

Try contact Pacemaker direct via their site to see if they are interested in what you have. Daniel is the develooer.

Re: 0201 error with latest firmware - debugging

Posted: Sat Jul 11, 2015 11:53 pm
by rj200
Sorry, 22MB I meant to write! If it didn't get through via email then I have uploaded to wetransfer: http://we.tl/YbI1AX3bNk (link lasts 1 week)

Re: 0201 error with latest firmware - debugging

Posted: Sun Jul 12, 2015 9:32 am
by Sox
Ok I'll pass on that link.