3 ms·
oh sick! thank you for letting me know. I will look into using this more for sure. I am curious, do you know if there is a way to access the arguments for kfunc
by knuckleheads 2y ago
oh sick! thank you for letting me know. I will look into using this more for sure. I am curious, do you know if there is a way to access the arguments for kfuncs ahead of time? does the kernel provide this information somehow at runtime, or is it all still implicit?
Also, you might also enjoy https://github.com/zmaril/hancock https://github.com/zmaril/hancock which is some of the code I've been using to run ctags across the versions of the kernel.
(edit: I checked bpftrace -l and saw that it does have the arguments and type structs ahead of time, which is absolutely perfect, thank you very much! Super helpful.)
- evgpbfhnr 2y agoTry this: bpftrace -lv kfunc:* (or any specific function instead of wildcard) will get you all kfuncs and their respective arguments. output snippet: kfunc:vmlinux:tcp_conn_request struct request_sock_ops * rsk_ops const struct tcp_request_sock_ops * af_ops struct sock * sk struct sk_buff * skb int retval kfunc:vmlinux:tcp_connect struct sock * sk int retval kfunc:vmlinux:tcp_create_openreq_child const struct sock * sk struct request_sock * req struct sk_buff * skb struct sock * retval I'm not sure how to get this info without bpftrace itself - bpftool might have the info available somehow?
- knuckleheads 2y agoThat’s awesome! Very helpful, thank you. I had been holding off on parsing that output and combining it with vmlinux.h, but that just jumped up way higher priority. Thanks again!