如何通过子类调用调试R6父类的构造函数?
解决R6父类构造函数调试问题
针对你遇到的子类实例化时无法调试父类构造函数的问题,给你几个实用方案:
手动给父类构造函数绑定调试器
不需要直接实例化父类,直接在控制台执行:debug(Parent$public_methods$initialize)之后实例化子类时,父类的
initialize方法触发时就会自动进入单步调试。调试完成后用undebug(Parent$public_methods$initialize)取消调试状态。子类显式调用父类构造函数并加断点
如果子类的构造函数是自定义的,确保显式调用父类构造逻辑,比如:Child <- R6::R6Class( "Child", inherit = Parent, public = list( initialize = function(...) { super$initialize(...) # 显式调用父类构造 # 子类其他初始化逻辑 } ) )在ESS里给
super$initialize(...)这行设置断点,实例化子类时触发断点后,就能跟进到父类的构造函数代码里。直接定位父类构造函数代码加断点
在ESS中,通过getAnywhere(Parent$public_methods$initialize)找到父类构造函数的定义位置,跳转到对应代码行后手动设置断点,这样不管是父类还是子类调用,都会触发调试。
内容的提问来源于stack exchange,提问作者user1407220
相关产品推荐
相关产品推荐

