Quuxplusone / LLVMBugzillaTest

0 stars 0 forks source link

Odd 'watchpoint set' errors on Android target #35511

Open Quuxplusone opened 6 years ago

Quuxplusone commented 6 years ago
Bugzilla Link PR36538
Status NEW
Importance P normal
Reported by Dmitry Antipov (dmantipov@yandex.ru)
Reported on 2018-02-27 05:43:52 -0800
Last modified on 2018-02-27 05:43:52 -0800
Version 6.0
Hardware Other Linux
CC llvm-bugs@lists.llvm.org
Fixed by commit(s)
Attachments t-watchpoint.cc (499 bytes, text/x-c++src)
Blocks
Blocked by
See also
Created attachment 19967
Sample program

$ /home/dantipov/.local/llvm-6.0.0/bin/lldb
(lldb) platform select remote-android
 Platform: remote-android
 Connected: no
(lldb) platform connect connect://localhost:9999
 Platform: remote-android
 Triple: aarch64-*-linux-android
 OS Version: 24.0.0 (3.10.96+)
 Kernel: #1 SMP PREEMPT Mon Feb 13 20:11:02 PST 2017
 Hostname: localhost
 Connected: yes
WorkingDir: /
(lldb) attach 14797
Process 14797 stopped
* thread #1, name = 't-watchpoint', stop reason = signal SIGSTOP
    frame #0: 0x0000002000f3cc44 libc.so`nanosleep + 4
libc.so`nanosleep:
->  0x2000f3cc44 <+4>:  svc    #0
    0x2000f3cc48 <+8>:  cmn    x0, #0x1, lsl #12         ; =0x1000
    0x2000f3cc4c <+12>: cneg   x0, x0, hi
    0x2000f3cc50 <+16>: b.hi   0x2000ef644c              ; __set_errno_internal

Executable module set to "/home/dantipov/.lldb/module_cache/remote-
android/.cache/CFD513B9-0000-0000-0000-000000000000/t-watchpoint".
Architecture set to: aarch64--linux-android.
(lldb) watchpoint list
Number of supported hardware watchpoints: 4
No watchpoints currently set.
(lldb) watchpoint set variable A
Watchpoint created: Watchpoint 1: addr = 0x2000da3e60 size = 4 state = enabled
type = w
    watchpoint spec = 'A'
    new value: 7
(lldb) watchpoint set variable B
error: Watchpoint creation failed (addr=0x2000da3e64, size=4, variable
expression='B').
error: sending gdb watchpoint packet failed
(lldb) watchpoint set variable C
Watchpoint created: Watchpoint 3: addr = 0x2000da3e68 size = 4 state = enabled
type = w
    watchpoint spec = 'C'
    new value: 7
(lldb) watchpoint set variable D
error: Watchpoint creation failed (addr=0x2000da3e6c, size=4, variable
expression='D').
error: sending gdb watchpoint packet failed
(lldb) watchpoint set variable E
Watchpoint created: Watchpoint 5: addr = 0x2000da3e70 size = 4 state = enabled
type = w
    watchpoint spec = 'E'
    new value: 6
(lldb) watchpoint list
Number of supported hardware watchpoints: 4
Current watchpoints:
Watchpoint 1: addr = 0x2000da3e60 size = 4 state = enabled type = w
    watchpoint spec = 'A'
    new value: 7
Watchpoint 3: addr = 0x2000da3e68 size = 4 state = enabled type = w
    watchpoint spec = 'C'
    new value: 7
Watchpoint 5: addr = 0x2000da3e70 size = 4 state = enabled type = w
    watchpoint spec = 'E'
    new value: 6

Probably I need an advice to provide more information (extra logging?).
Quuxplusone commented 6 years ago

Attached t-watchpoint.cc (499 bytes, text/x-c++src): Sample program