Eppic works as a crash extension for a long time, and it is a very convenient tool to extend crash's function:
1) People don't need to write an actual crash extension, which requires knowledge of crash APIs, such as readmem(), gdb_interface() etc. Implementing such an crash extension is hard for normal users. 2) Eppic programs are C-syntax-like scripting, no compile needed, so friendly to kernel developers who are already familiar with C. It's a good alternative for people who are unfamiliar with python (comparing to drgn/pykdump). 3) Writing eppic programs is similar to do kernel programming, people can use kernel data structures/global variables directly, again, friendly to kernel developers. Personally I think eppic is a good tool and would like to push it forward to make it used more widely, improved consistently. However I hardly heard anyone who are using it, I guess it is due to it's extension position and unknown to others. In this patchset, I will make several improvements on eppic, although it is still a crash extension, but I think it is made more easily for compile/run/scripting. To-do: Some crash functions should be exposed to eppic, such as maple_tree/rbtree etc, so people can iterate these kernel structures with the existing crash functions, otherwise people need to reimplement those in eppic. A more aggresive improvement of eppic can be found in [1], which people can use call_crash_func() to call any crash's function within eppic script, please refer to code example in [2]. Not sure if people like this, so any feedback/comments are welcomed. v2 -> v1: Removed v1's No.2 & 3 & 5 patch, these 3 are used for compile/preload/alias eppic by default, these are a little aggressive and left to [1] instead. [1]: https://github.com/liutgnu/crash-dev/tree/eppic [2]: https://github.com/liutgnu/crash-dev/blob/eppic/extensions/eppic.patch#L298 v3 -> v2: Removed goto for get_extensions_directory(). Removed pushd/popd in eppic.mk. Tao Liu (2): extensions: Search all possible paths eppic.patch: Add customized functions to eppic extensions.c | 59 ++++++------ extensions/eppic.mk | 9 +- extensions/eppic.patch | 210 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 250 insertions(+), 28 deletions(-) create mode 100644 extensions/eppic.patch -- 2.47.0 -- Crash-utility mailing list -- [email protected] To unsubscribe send an email to [email protected] https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/ Contribution Guidelines: https://github.com/crash-utility/crash/wiki
