我尝试使用 lldb
来调试我正在开发的R包中的seg错误错误 . 我已经在SO上看到了一些使用 lldb
来成功调试R包的其他问题 . 但我无法让它工作......
我首先启动一个新的 Rstudio
进程,并希望通过以下命令将 lldb
附加到 rsession
进程:
(lldb) process attach -name rsession
然后 Rstudio
会说"R Session Aborted"并且我在 lldb
中有以下消息:
Process 20658 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
frame #0: 0x00007fffb69b2bf2 libsystem_kernel.dylib`__psynch_cvwait + 10
libsystem_kernel.dylib`__psynch_cvwait:
-> 0x7fffb69b2bf2 <+10>: jae 0x7fffb69b2bfc ; <+20>
0x7fffb69b2bf4 <+12>: movq %rax, %rdi
0x7fffb69b2bf7 <+15>: jmp 0x7fffb69abcaf ; cerror_nocancel
0x7fffb69b2bfc <+20>: retq
甚至我将 c
命令输入 lldb
, lldb
给我一条消息,表明进程正在恢复,但是 Rstudio
仍然被"R Session Aborted"搞定 .
(lldb) c
Process 20658 resuming
(lldb)
如果我单击 Rstudio
的开始新会话,我将有一个新的 rsession
进程,该进程未附加 lldb
....
我应该怎么做 rsession
使用 lldb
?
我目前正在使用mac Sierra 10.12.5
1 回答
这种方法对我有用
在第一个终端窗口
在第二个终端窗口
我在lldb里面,我没有得到关于会话失败的令人讨厌的消息 .
更新:
@Consistency报告可能需要在lldb中使用稍微不同的命令: