我已经更新到 R4.0.0
和 RStudio 版本1.2.5042
。
我正在开发一个包,我经常使用以下工作流程:
--with-keep.source
通过单击“安装和重新启动”按钮(包括R CMD INSTALL 选项)从 RStudio 中构建包。.R
在我要调试的函数的文件中设置断点。- 调用该函数并等待调试器在我设置断点的位置准确停止。
这曾经很好地工作。但是,现在,我总是得到:
调试位置是近似的,因为源不可用
这很烦人,因为我仍然可以调试,但我不再使用实际功能了。
任何提示/想法为什么会这样?
编辑 (11.05.2020)
这似乎是 RStudio 和 R 4.0.0 的问题。这就是我这么认为的原因。我使用了另一台运行 Windows 10 的机器并执行了以下步骤(按此顺序;Windows 用户应该可以重现)。一开始我安装了 R 3.6.1 和 RStudio 1.2.5042(在撰写本文时 1.2.5042 是当前版本;也尝试使用 RStudio 的预览版 1.3.957)。
克隆我正在从 Github 开发的包:
git clone "https://github.com/M-E-Rademaker/cSEM"
转到包根目录并打开
cSEM.Rproj
- 运行
devtools::install_github("M-E-Rademaker/cSEM")
自动安装包并下载所有cSEM
依赖的包。 - 在 RStudio 中:点击“
Build
”安装和“Install and Restart
” - 现在导航到源文件。例如:
R/00_csem.R
并在例如第 321 行设置断点。 现在运行以下代码:
model <- " # Structural model eta2 ~ eta1 eta3 ~ eta1 + eta2 # Measurement eta1 =~ y11 + y12 + y13 eta2 =~ y21 + y22 + y23 eta3 =~ y31 + y32 + y33 " res <- csem(threecommonfactors, model)
调试器应该启动并将您带到第 321 行。您应该能够更改代码,并且您不应该收到“ debug-location-is-approximate-because-the-source-is-not-availabe”警告如果您是在低于 4.0.0 的 R 版本上。
- 转到
R/00_csem.R
并删除第 321 行中的断点 - 关闭 Rstudio 并将 R 更新为 4.0.0(使用 eg
installr::updateR()
) - 重要提示:还获取最新版本的 Rtools 并按照网站上有关您需要将 rtools 添加到 PATH 的部分的步骤进行操作。https://cran.r-project.org/bin/windows/Rtools/
- 由于您需要重新安装所有软件包:
cSEM.Rproj
再次打开;跑install.packages("devtools")
- 现在重复步骤 3、4、5 和 6。
- 调试器应该再次在第 321 行停止,但是,这次您确实收到了“debug-location-is-approximate-because-the-source-is-not-availabe”警告。
这是为什么?欢迎任何想法/提示/建议!
我尝试过的其他事情:
- 从 win-library 中删除软件包并重新安装
- 使用从 GitHub 重新安装包
devtools::install_github()
- 检查包根
- 更新了所有依赖包
- 在不同的机器上重复该过程
- 我开发了另一个包,您可以在此处从 GitHub 克隆它:https ://github.com/ME-Rademaker/cSEM.DGP 。您可以使用此软件包运行相同的过程,但是,在这里我在使用 4.0.0 时没有收到警告......我认为这非常奇怪。