我已经使用 GDB Python 接口为(C)结构编写了一个漂亮的打印机,该结构倾向于在软件版本之间发生变化。由于格式在波动,我试图使打印机具有足够的动态以适应并总是尝试打印有用的东西而不是抛出 Python 异常。
目前我需要支持两种主要格式,但未来可能还会支持更多。我想为打印机编写一些单元测试,以避免必须手动加载来自不同版本的 coredump 来测试它。
我想也许我可以从调试会话中序列化 gdb.Value 并将它们加载到我的单元测试中,但我无法做到(pickle 不适用于 gdb.Value)。核心转储非常大,因此无法使用漂亮的打印机和脚本 GDB 存储它们以进行测试。
如何在不保留大量核心转储的情况下对漂亮的打印机进行单元测试?