More > JRiver Media Center 25 for Linux
JRiver 25 "Illegal Instruction"
bob:
--- Quote from: designmule on August 01, 2019, 04:29:42 pm ---So from terminal I first entered gdb mediacenter25 and it returned gdb license info, etc. then returned "Reading symbols from mediacenter25...(no debugging symbols found)...done.
The with gdb still open in the terminal I attempted to start medicenter 25 which crashed as it has been.
I then typed bt full in the terminal and gdb returned No stack.
I've never used gdb before so I've laid out my actions just in case I made a mistake.
Thanks for the help
Matt
--- End quote ---
That's correct. Not sure why there is not a trace.
You can try doing:
ldd -d /usr/lib/jriver/Media\ Center\ 25/*.so* | grep -iH found
and
ldd -d /usr/lib/jriver/Media\ Center\ 25/Plugins/*.so* | grep -iH found
and
ldd -d /usr/bin/mediacenter25 | grep -iH found
to see if you are missing anything.
Hendrik:
--- Quote from: designmule on August 01, 2019, 04:29:42 pm ---So from terminal I first entered gdb mediacenter25 and it returned gdb license info, etc. then returned "Reading symbols from mediacenter25...(no debugging symbols found)...done.
The with gdb still open in the terminal I attempted to start medicenter 25 which crashed as it has been.
--- End quote ---
From your description, it sounds like one of the steps was misinterpreted. Where it says "run", it literally means type "run" into the gdb terminal, so that gdb starts MC for you. Only then will it be able to catch the error. Do that again, and the next step with "bt full" should have some info.
Oh and for good measure, throw in a "disassemble" command after the "bt full", that should be able to show us what instruction is actually causing the issue.
designmule:
Thanks Bob and Hendrick
I'll try both suggestions but will start with Hendrick's as it's a correction to my first test.
After typing "run" in the GDB terminal the following is returned:
Starting program: /usr/bin/mediacenter25
[Thread debugging using libthread db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
[New Thread 0xb3891410 (LWP 3665)]
Thread 1 "mediacenter25" received signal SIGILL, Illegal instruction.
0xb496fd9c in __gmpz_sizeinbase ()
from /usr/lib/jriver/Media Center 25/libgmp.so.10
Then after typing "bt full" in the gdb terminal the following is returned:
#0 0xb496fd9c in __gmpz_sizeinbase ()
from /usr/lib/jriver/Media Center 25/libgmp.so.10
No symbol table info available.
#1 0x01c21218 in ?? ()
No symbol table info available.
Backtrace stopped: previous from identical to this frame (corrupt stack?)
Then after typing "disassemble" in the gdb terminal the following is returned: (I'm typing all of this so beware of typos)
Dump of assembler code for function __gmpz sizeinbase:
0xb496fd18 <+0>: ldr r3, [r0, #4]
0xb496fd1c <+4>: ldr r12, [pc, #136] ; 0xb496fdac <__gmpz sizeinnbase+ 148>
0xb496fd20 <+8>: cmp r3, #0
0xb496fd24 <+12>: add r12, pc, r12
0xb496fd28 <+16>: beq 0xb496fda4 <__gmpz_sizeinbase+140>
0xb496fd2c <+20>: addlt r2, r3, #1
0xb496fd30 <+24>: subge r2, r3, #-1073741823 ; 0xc0000001
0xb496fd34 <+28>: push {lr} ; (str lr, [sp, #4]!)
0xb496fd38 <+32>: lsllt r2, r2, #2
0xb496fd3c <+36>: lslge r2, r2, #2
0xb496fd40 <+40>: rsblt r2, r2, #0
0xb496fd44 <+44>: ldr lr,[r0, #8]
0xb496fd48 <+48>: cmp r3, #0
0xb496fd4c <+52>: sub r0, r1, #1
0xb496fd50 <+56>: rsblt r3, r3, #0
0xb496fd54 <+60>: tst r0, r1
0xb496fd58 <+64>: ldr r0, r1
0xb496fd5c <+68>: clz r0, r0
0xb496fd60 <+72>: rsb r3, r0, r3, lsl #5
0xb496fd64 <+76>: ldr r0, [pc, #68] ; 0xb496fdb0 <__gmpz_sizeinbase+ 152>
0xb496fd68 <+80>: lsl rs, r1, #4
0xb496fd6c <+84>: add r1, r2, r1, lsl #2
0xb496fd70 <+88>: ldr r2, [r12, r0]
0xb496fd74 <+92>: add r1, r2, r1
0xb496fd78 <+96>: beq 0xb496fd90 <__gmpz_sizeinbase+120>
0xb496fd7c <+100>: ldr r2, [r1, #4]
0xb496fd80 <+104>: add r2, r2, #1
0xb496fd84 <+108>: umull r1, r0, r2, r3
0xb496fd88 <+112>: add r0, r0,#1
0xb496fd8c <+116>: pop {pc} ; (ldr pc, [sp], #4
0xb496fd90 <+120>: ldr r2, [r1, #12]
0xb496fd94 <+124>: sub r0, r2, #1
0xb496fd98 <+128>: add r3, r0, r3
0xb496fd9c <+132>: udiv r0, r3, r2
0xb496fda0 <+136>: pop {pc} ; (ldr pc, [sp], #4)
0xb496fda4 <+140>: mov r0, #1
0xb496fda8 <+144>: bx lr
0xb496fdac <+148>: andeq r0, r5, r12, ror #24
0xb496fdb0 <+152>: andeq r0, r0, r4, lsr #11
End of assembler dump.
Whew! Used some keys on the keyboard that don't get much use otherwise. I appreciate the help.
Matt
designmule:
--- Quote from: bob on August 01, 2019, 04:43:41 pm ---You can try doing:
ldd -d /usr/lib/jriver/Media\ Center\ 25/*.so* | grep -iH found
and
ldd -d /usr/lib/jriver/Media\ Center\ 25/Plugins/*.so* | grep -iH found
and
ldd -d /usr/bin/mediacenter25 | grep -iH found
to see if you are missing anything.
--- End quote ---
Running these three commands returned nothing. I'll note that I ran them via ssh for easy copy/paste while for the gdb commands I ran in lxterminal while connected to the sparky via RDP. I've found that if I attempt to start JRiver via ssh I get errors related to starting the display but other commands work fine.
Hendrik:
Thanks, so its in libgmp. That should help to figure out if something went wrong.
The offending line is 0xb496fd9c, which is "UDIV" - which for some reasons is not available on Cortex-A9 (reference: https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/divide-and-conquer)
We'll have to figure out how this happened as we try to build stuff with a much more compatible target, usually.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version