R session在附加lldb debuger时中止

时间:2017-07-26 02:47:47

标签: r rstudio lldb

我尝试使用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命令输入lldblldb也会向我发出进程正在恢复的消息,但Rstudio仍然停留在&#34; R会议中止&#34;。

(lldb) c
Process 20658 resuming
(lldb) 

如果我点击Rstudio开始新会话,我将有一个新的rsession进程,lldb没有附加....

我应该如何使用rsession来调试lldb

我目前正在使用mac Sierra 10.12.5

1 个答案:

答案 0 :(得分:1)

这种方法对我有用

在第一个终端窗口

> lldb /Applications/RStudio.app/Contents/MacOS/RStudio
(lldb) b fork
(lldb) run
# breakpoint hit - start second lldb
# after running second lldb
(lldb) cont                # first fork
(lldb) cont                # second call to fork

在第二个终端窗口

lldb
(lldb) pro at -n rsession -w
Process 1428 stopped
....
Executable module set to "/Applications/RStudio.app/Contents/MacOS/rsession".
Architecture set to: x86_64-apple-macosx.
(lldb) cont
Process 1428 resuming
(lldb)

我在lldb内部并且我没有得到关于会话失败的令人讨厌的消息。

更新

@Consistency报告可能需要在lldb中使用略有不同的命令:

(lldb) pro at -n rsession