xplodwild / bbqscreen_client

Sources for the client app of BBQScreen
GNU General Public License v2.0
54 stars 23 forks source link

Floating point exception while trying remote control using mouse #8

Open estan opened 9 years ago

estan commented 9 years ago

I tried clicking with the mouse to remote control the phone (Xperia Z3 Compact), but the bbqscreen process raises a floating point exception, and the client has to try reconnecting until till the bbqscreen service is running again. This happens every time I try to click or drag with the mouse.

The output in the debug log when this happens is:

...
INCOMING DATA (7 bytes)
Floating point exception
...

and the adb logcat output is

W/bbqscreen( 3852): type=1400 audit(0.0:1172): avc: denied { search } for name="graphics" dev="tmpfs" ino=7955 scontext=u:r:shell:s0 tcontext=u:object_r:graphics_device:s0 tclass=dir op_res=-13 ppid=3850 pcomm="sh" tgid=3850 tgcomm="sh"
F/libc    ( 3852): Fatal signal 8 (SIGFPE), code -6, fault addr 0xf0c in tid 3852 (bbqscreen)
D/clmlib  (  311): Got activities:0x0000000E
W/NativeCrashListener(  860): Couldn't find ProcessRecord for pid 3852
I/DEBUG   (  311): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
E/DEBUG   (  311): AM write failure (32 / Broken pipe)
I/DEBUG   (  311): UUID: c78798ec-ee4c-4542-ab88-6aa8e430d05d
I/DEBUG   (  311): Build fingerprint: 'Sony/D5803/D5803:5.1.1/23.4.A.1.232/2925005669:user/release-keys'
I/DEBUG   (  311): Revision: '0'
I/DEBUG   (  311): ABI: 'arm'
I/DEBUG   (  311): pid: 3852, tid: 3852, name: bbqscreen  >>> /data/local/tmp/bbqscreen <<<
I/DEBUG   (  311): signal 8 (SIGFPE), code -6 (SI_TKILL), fault addr 0xf0c
W/debuggerd(  311): type=1400 audit(0.0:1173): avc: denied { search } for name="tmp" dev="mmcblk0p25" ino=513074 scontext=u:r:debuggerd:s0 tcontext=u:object_r:shell_data_file:s0 tclass=dir op_res=-13 ppid=1 pcomm="init" tgid=1 tgcomm="init"
W/debuggerd(  311): type=1400 audit(0.0:1174): avc: denied { search } for name="tmp" dev="mmcblk0p25" ino=513074 scontext=u:r:debuggerd:s0 tcontext=u:object_r:shell_data_file:s0 tclass=dir op_res=-13 ppid=1 pcomm="init" tgid=1 tgcomm="init"
W/debuggerd(  311): type=1400 audit(0.0:1175): avc: denied { search } for name="tmp" dev="mmcblk0p25" ino=513074 scontext=u:r:debuggerd:s0 tcontext=u:object_r:shell_data_file:s0 tclass=dir op_res=-13 ppid=1 pcomm="init" tgid=1 tgcomm="init"
I/DEBUG   (  311):     r0 00000000  r1 00000f0c  r2 00000008  r3 00000000
I/DEBUG   (  311):     r4 b6fa6e38  r5 00000008  r6 0000000d  r7 0000010c
I/DEBUG   (  311):     r8 00000000  r9 000004ff  sl 00000001  fp b6fbee28
I/DEBUG   (  311):     ip 00000f0c  sp be29f490  lr b6f278a9  pc b6f4b5e4  cpsr 600f0010
I/DEBUG   (  311): 
I/DEBUG   (  311): backtrace:
I/DEBUG   (  311):     #00 pc 000385e4  /system/lib/libc.so (tgkill+12)
I/DEBUG   (  311):     #01 pc 000148a5  /system/lib/libc.so (pthread_kill+52)
I/DEBUG   (  311):     #02 pc 000154c3  /system/lib/libc.so (raise+10)
I/DEBUG   (  311):     #03 pc 000103a8  /data/local/tmp/bbqscreen
W/debuggerd(  311): type=1400 audit(0.0:1176): avc: denied { search } for name="tmp" dev="mmcblk0p25" ino=513074 scontext=u:r:debuggerd:s0 tcontext=u:object_r:shell_data_file:s0 tclass=dir op_res=-13 ppid=1 pcomm="init" tgid=1 tgcomm="init"
W/debuggerd(  311): type=1400 audit(0.0:1177): avc: denied { search } for name="tmp" dev="mmcblk0p25" ino=513074 scontext=u:r:debuggerd:s0 tcontext=u:object_r:shell_data_file:s0 tclass=dir op_res=-13 ppid=1 pcomm="init" tgid=1 tgcomm="init"
I/DEBUG   (  311): 
I/DEBUG   (  311): Tombstone written to: /data/tombstones/tombstone_03

I unfortunately don't have access to the created tombstone_03, so I can't get a better backtrace than this. It says it has been copied to DropBox, but I can't find it there.

Tell me if you need more information and I'll see what I can do.

estan commented 9 years ago

I would paste the whole debug log, but it seems it's impossible to copy/paste from the debug log window? (It seems to be a list widget instead of e.g. a plain text widget). If you really want I can type it all, but I'd rather not :)

xplodwild commented 9 years ago

Can you screenshot or something the beginning of the log? You should see a bunch of /dev/input probed - errors are poorly handled in this part of the code, but typically this happens if no device has been detected as a touch device to inject input.

estan commented 9 years ago

Ah, of course, a screenshot. Didn't think of that. Here it is:

debug_log

It looks like it is finding the touch device, right?

(This time I see those two keyboard down events before the 7 bytes are received. I didn't see those last time I tried. This time I tried a swipe to unlock my lock screen.)