2012-04-11 32 views
14

Có thể sử dụng GDB hoặc LLDB từ dòng lệnh Thiết bị đầu cuối trong Mac OS X để gỡ lỗi các ứng dụng đang chạy trên Trình mô phỏng iOS không? (ví dụ: không phải từ bên trong GUI hoặc giao diện điều khiển của Xcode, nhưng sử dụng dòng lệnh hoặc quy trình bên ngoài). Nếu vậy, làm thế nào?Gỡ lỗi dòng lệnh của ứng dụng iOS Simulator?

Trả lời

22

Bạn sẽ cần có ứng dụng đã có trong Springboard của trình mô phỏng; bạn không thể khởi chạy ứng dụng trong trình mô phỏng từ Xcode và sau đó mong đợi để có thể có một cá thể dòng lệnh của gdb đính kèm vào nó.

Vì vậy:

  1. Run iOS Simulator, sau khi đã nhận được ứng dụng của bạn vào đó.
  2. Trong một cửa sổ terminal:
 
    % gdb 
    ... 
    (gdb) attach --waitfor 'Name Of Your App' 
  1. Khởi chạy ứng dụng của bạn từ Springboard mô phỏng.
  2. gdb nên đính kèm vào quá trình trước khimain() được thực thi. Vì vậy, bạn có thể thiết lập một số điểm ngắt, hoặc bất cứ điều gì. Sau đó:
 
    (gdb) continue 

Thủ tục lldb cũng tương tự như:

 
    % lldb 
    (lldb) process attach -n 'Name Of Your App' --waitfor 
    <launch your app in the simulator> 
    (lldb) continue 

Tôi không chắc chắn lý do tại sao bạn muốn hoặc cần phải làm điều này, nhưng như một gdb cũ dòng lệnh (và dbx anh chàng, tôi có thể đánh giá cao nó. :-)

+0

Rất tiện lợi. Hat ra cho bạn, thưa bạn! –

+0

Sử dụng lệnh 'xcrun simctl' để cài đặt ứng dụng trên trình mô phỏng, sau đó khởi chạy ứng dụng. – tboyce12

Các vấn đề liên quan