如何查找加载的 ASDF 系统的符号(和源文件)

Posted

技术标签:

【中文标题】如何查找加载的 ASDF 系统的符号(和源文件)【英文标题】:How Can I Find Symbols (and Source Files) of a loaded ASDF System 【发布时间】:2021-09-13 20:03:12 【问题描述】:

我有一些 ASDF3 系统,它们都共享一个公共包。

我想知道如何找到仅由其中一个定义的所有符号。有没有办法收集这些?能够确定定义给定符号的源文件的路径名也很有帮助。

我很欣赏最佳实践会规定每个系统使用单独的包,但我现在有一些理由不这样做。 (如果绝对必要,我可以重新考虑。)

【问题讨论】:

【参考方案1】:

没有。 ASDF 不知道它加载的系统和文件的内容。

系统是文件的集合以及一些描述其依赖拓扑(以及其他)的元数据。没有什么规定文件甚至必须是 Lisp 文件。

您可以尝试询问您的 Lisp 实现是从哪个文件加载的 e. G。一个函数定义,然后从文件名和位置推断它可能属于的系统(假设您的系统不使用相同的文件)。

【讨论】:

感谢您的澄清。除非我以后想分享代码,否则我真的只使用 SBCL。我会按照你的建议研究具体的实现。这不是成败的局面。

以上是关于如何查找加载的 ASDF 系统的符号(和源文件)的主要内容,如果未能解决你的问题,请参考以下文章

部分无法查找或打开 PDB 文件

使用 ASDF 加载可选组件

(ASDF 3) 是不是可以在子目录中递归加载系统?

查找 Common Lisp 文件之间的依赖关系

如何避免 iOS 二进制文件中的符号和源路径?

VS2015编辑C语言时出现这个,KernelBase.dll,已经设置了工具的选项,启用了服务器支持和符号服务器