ebpf.c 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. //#include <linux/kconfig.h>
  2. //#include <linux/tcp.h>
  3. //#include <net/flow.h>
  4. //#include <net/inet_sock.h>
  5. //#include <net/sock.h>
  6. //#include <net/net_namespace.h>
  7. //#include <uapi/linux/bpf.h>
  8. #include "include/apm_trace.h"
  9. #include "include/socket_trace.h"
  10. //#include "vmlinux.h"// #include <asm/ptrace.h>
  11. //#include <bpf/bpf_helpers.h>// bpf_base.h deepclash
  12. //#include <bpf/bpf_core_read.h>// no use
  13. //#include <bpf/bpf_tracing.h>
  14. //#include <bpf/bpf_endian.h>
  15. #include "common/bpf/bpf_endian.h"
  16. #define EVENT_TYPE_PROCESS_START 1
  17. #define EVENT_TYPE_PROCESS_EXIT 2
  18. #define EVENT_TYPE_CONNECTION_OPEN 3
  19. #define EVENT_TYPE_CONNECTION_CLOSE 4
  20. #define EVENT_TYPE_CONNECTION_ERROR 5
  21. #define EVENT_TYPE_LISTEN_OPEN 6
  22. #define EVENT_TYPE_LISTEN_CLOSE 7
  23. #define EVENT_TYPE_FILE_OPEN 8
  24. #define EVENT_TYPE_TCP_RETRANSMIT 9
  25. #define EVENT_TYPE_PYTHON_THREAD_LOCK 11
  26. #define EVENT_TYPE_ACCEPT_OPEN 13
  27. #define EVENT_TYPE_ACCEPT_CLOSE 14
  28. #define EVENT_REASON_OOM_KILL 1
  29. #define MIN(a,b) (((a)<(b))?(a):(b))
  30. #define bpf_read(src, dst) \
  31. ({ \
  32. if (bpf_probe_read(&dst, sizeof(dst), src) < 0) { \
  33. return 0; \
  34. } \
  35. })
  36. //#define GOROUTINE(x) ((x)->r14)
  37. #include "common/common.h"
  38. #include "proc.c"
  39. #include "file.c"
  40. // new main
  41. #include "socket_trace.c"
  42. #include "tcp/state.c"
  43. #include "tcp/retransmit.c"
  44. //#include "l7/uprobe_base_bpf.c"
  45. #include "l7/l7.c"
  46. #include "l7/gotls.c"
  47. //#include "l7/openssl.c"
  48. #include "utrace/go/net/server.probe.bpf.c"
  49. #include "utrace/go/net/client.probe.bpf.c"
  50. #include "utrace/go/net/stack.probe.bpf.c"
  51. #include "utrace/go/net/jvmstack.probe.bpf.c"
  52. #include "utrace/java/net/server.probe.bpf.c"
  53. #include "utrace/java/net/client.probe.bpf.c"
  54. // TODO 支持arm64后打开
  55. #if defined(__x86_64__)
  56. //TODO 支持kernel-4.18+后打开
  57. #if __KERNEL_FROM >= 512
  58. #include "utrace/netcore/net/server.probe.bpf.c"
  59. #include "utrace/netcore/net/client.probe.bpf.c"
  60. #endif
  61. #endif
  62. char _license[] SEC("license") = "GPL";