foundryzero / llef

LLEF is a plugin for LLDB to make it more useful for RE and VR

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Very slow to render output on break.

p4yl0ad opened this issue · comments

commented

Very slow when rendering the registers / stack / code / threads / trace (takes around 5 seconds on break)

bash-3.2$ uname -a
Darwin SMARTFRIDGE.local 22.5.0 Darwin Kernel Version 22.5.0: Thu Jun  8 22:22:22 PDT 2023; root:xnu-8796.121.3~7/RELEASE_X86_64 x86_64
bash-3.2$ neofetch
                    'c.          username@SMARTFRIDGE.local
                 ,xNMM.          -----------------------
               .OMMMMo           OS: macOS 13.4.1 22F82 x86_64
               OMMM0,            Host: MacBookPro15,1
     .;loddo:' loolloddol;.      Kernel: 22.5.0
   cKMMMMMMMMMMNWMMMMMMMMMM0:    Uptime: 1 day, 56 mins
 .KMMMMMMMMMMMMMMMMMMMMMMMWd.    Packages: 34 (brew)
 XMMMMMMMMMMMMMMMMMMMMMMMX.      Shell: bash 3.2.57
;MMMMMMMMMMMMMMMMMMMMMMMM:       DE: Aqua
:MMMMMMMMMMMMMMMMMMMMMMMM:       WM: Amethyst
.MMMMMMMMMMMMMMMMMMMMMMMMX.      Terminal: tmux
 kMMMMMMMMMMMMMMMMMMMMMMMMWd.    CPU: Intel i7-9750H (12) @ 2.60GHz
 .XMMMMMMMMMMMMMMMMMMMMMMMMMMk   GPU: Intel UHD Graphics 630, Radeon Pro 555X
  .XMMMMMMMMMMMMMMMMMMMMMMMMK.   Memory: 9545MiB / 16384MiB
    kMMMMMMMMMMMMMMMMMMMMMMd
     ;KMMMMMMMWXXWMMMMMMMk.
       .cooc,.    .,coo:.




bash-3.2$ sudo lldb ./hello
Password:
Stop hook #1 added.
(lldb) target create "./hello"
Current executable set to '/Users/username/EXP-312/AMFI/hello' (x86_64).
(lldb) b dyld`amfi_check_dyld_policy_self
Breakpoint 1: where = dyld`amfi_check_dyld_policy_self, address = 0x00007ff8000fb908
(lldb) b main
Breakpoint 2: where = hello`main, address = 0x0000000100003f70
(lldb) run
Process 6926 launched: '/Users/username/EXP-312/AMFI/hello' (x86_64)



[ Legend: Modified register | Code | Heap | Stack | String ]
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq registers qqqq
rax    : 0x10000d910
rbx    : 0x100003f70     _  <main+0>
rcx    : 0x7ff7bfeffa60
rdx    : 0x7ff7bfeff9c0
rdi    : 0x1
rsi    : 0x7ff7bfeff9b0
rbp    : 0x7ff7bfeff990
rsp    : 0x7ff7bfeff708
r8     : 0x1000003c0     _  <_mh_execute_header+960>  _  ("("?)
r9     : 0x0
r10    : 0x4000
r11    : 0x40000
r12    : 0x7ff7bfeff8c8
r13    : 0x7ff7bfeff900
r14    : 0x7ff7bfeff910
r15    : 0x7ff7bfeff790
rip    : 0x100003f70     _  <main+0>
rflags : [zero carry parity adjust sign trap INTERRUPT direction overflow resume virtualx86 identification]
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq stack qqqq
0x7ff7bfeff708x+0000: 0x0007ff81122741f  _  <start+1903>  _ $rsp
0x7ff7bfeff710x+0008: 0x000000000000000
0x7ff7bfeff718x+0010: 0x000000000000000
0x7ff7bfeff720x+0018: 0x000000000000000
0x7ff7bfeff728x+0020: 0x000000000000000
0x7ff7bfeff730x+0028: 0x0000001000b1de0
0x7ff7bfeff738x+0030: 0x000000042000000
0x7ff7bfeff740x+0038: 0x000000100012493
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq code qqqq
hello`main:
00003f70 <+0>:  pushq  %rbp
00003f71 <+1>:  movq   %rsp, %rbp
00003f74 <+4>:  subq   $0x10, %rsp
00003f78 <+8>:  movl   $0x0, -0x4(%rbp)
00003f7f <+15>: leaq   0x16(%rip), %rdi          ; "Hello, World!\n"
00003f86 <+22>: movb   $0x0, %al
00003f88 <+24>: callq  0x100003f96               ; symbol stub for: printf
00003f8d <+29>: xorl   %eax, %eax
00003f8f <+31>: addq   $0x10, %rsp
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq threads qqqq
thread #1: tid = 0x4b2a3, 0x0000000100003f70 hello`main, queue = 'com.apple.main-thread', stop reason = breakpoint 2.1
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq trace qqqq
[#0] 0x100003f70   _  main()
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
Process 6926 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 2.1
    frame #0: 0x0000000100003f70 hello`main
Target 0: (hello) stopped.
(lldb) exit
Not sure if this 

bash-3.2$ lldb --version
lldb-1403.0.17.67
Apple Swift version 5.8.1 (swiftlang-5.8.0.124.5 clang-1403.0.22.11.100)

Other than the slowness this will be extremely useful if it gets faster !

commented

Thanks for the report.

We have identified the cause of the slow down and optimized our calls to the LLDB API to speed up the rendering of the registers in PR #7 and have now merged into main.

commented

Much appreciated !