Вы могли бы рассмотреть одну из классики - они и свободны, расширяемы и имеют большие базы пользователей, которые расширяются вне Mac:
Мои первые два предложения довольно просты: (1) заключите вызов функции в try ()
(который часто предоставляет больше информации о классах S4) и (2) вызовите traceback ()
после появления ошибки (иногда это может указывать на то, где действительно возникает проблема).
Вызов debug ()
в этом случае не поможет , поэтому вам нужно использовать трассировку
или браузер
. Со страницы справки по отладке:
"In order to debug S4 methods (see Methods), you need to use trace, typically
calling browser, e.g., as "
trace("plot", browser, exit=browser, signature = c("track", "missing"))
С классами S4 может быть сложно работать; одним из примеров этого является комментарий в документации debug
package (относительно использования mtrace ()
с классами S4):
"I have no plans to write S4 methods, and hope not to have to
debug other people’s!"
A аналогичный вопрос недавно был задан в R-Help . Рекомендация Дункана Мердока:
"You can insert a call to browser() if you want to modify the source. If
you'd rather not do that, you can use trace() to set a breakpoint in it.
The new setBreakpoint() function in R 2.10.0 will also work, if you
install the package from source with the R_KEEP_PKG_SOURCE=yes
environment variable set. It allows you to set a breakpoint at a
particular line number in the source code."
Я '