| Demonstrations of bashreadline, the Linux eBPF/bcc version. |
| This prints bash commands from all running bash shells on the system. For |
| 05:28:35 21176 echo hello world |
| 05:28:43 21176 foo this command failed |
| 05:29:04 3059 echo another shell |
| 05:29:13 21176 echo first shell again |
| When running the script on Arch Linux, you may need to specify the location |
| of libreadline.so library: |
| # ./bashreadline -s /lib/libreadline.so |
| 11:17:51 28796 echo "Hello eBPF!" |
| The entered command may fail. This is just showing what command lines were |
| entered interactively for bash to process. |
| It works by tracing the return of the readline() function using uprobes |
| (specifically a uretprobe). |