Debugger.jl能否实现仅目标模块用解释模式,其余模块编译运行?
在Debugger.jl中设置指定模块以解释模式运行
Debugger.jl可以通过模块过滤规则实现「仅目标模块用解释模式,其余用编译模式」的需求,具体操作如下:
单次调试会话配置
调用@enter或run_debugger启动调试时,通过compiled_modules参数传入一个过滤函数:该函数接收模块名字符串,返回true代表模块以编译模式运行,返回false则以解释模式运行。
示例(让MyDebugModule模块用解释模式,其余模块编译):using Debugger # 定义过滤规则:排除目标模块 mod_filter(mod_name) = mod_name != "MyDebugModule" # 启动调试并应用规则 @enter my_debug_target_func() compiled_modules=mod_filter全局默认配置
如果需要让所有后续调试会话都沿用同一规则,可设置全局过滤函数:using Debugger # 设置全局模块过滤规则 Debugger.set_compiled_modules_filter!(mod_name -> mod_name != "MyDebugModule")后续启动的调试都会自动应用该规则,直到你修改或重置过滤函数。
注意:模块名需完全匹配(区分大小写),如果目标模块属于嵌套结构(如
Main.MyNestedModule),要传入完整的模块路径字符串。
内容的提问来源于stack exchange,提问作者AUK1939
相关产品推荐
相关产品推荐

