blob: f7bb9ff045f69382ebfadd281e2cc8d337608baf [file] [log] [blame]
Vicent Marti6d14b2f2016-04-30 13:22:42 +02001#!/usr/bin/env bcc-lua
Vicent Martidf11f322016-03-30 17:31:19 +02002--[[
3Copyright 2016 GitHub, Inc
4
5Licensed under the Apache License, Version 2.0 (the "License");
6you may not use this file except in compliance with the License.
7You may obtain a copy of the License at
8
9http://www.apache.org/licenses/LICENSE-2.0
10
11Unless required by applicable law or agreed to in writing, software
12distributed under the License is distributed on an "AS IS" BASIS,
13WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14See the License for the specific language governing permissions and
15limitations under the License.
16]]
17local ffi = require("ffi")
18
19return function(BPF)
Vicent Martie7893602016-03-30 17:31:19 +020020 local b = BPF:new{src_file="bashreadline.c", debug=0}
Vicent Martidf11f322016-03-30 17:31:19 +020021 b:attach_uprobe{name="/bin/bash", sym="readline", fn_name="printret", retprobe=true}
22
23 local function print_readline(cpu, event)
24 print("%-9s %-6d %s" % {os.date("%H:%M:%S"), tonumber(event.pid), ffi.string(event.str)})
25 end
26
Mark Drayton5f5687e2017-02-20 18:13:03 +000027 b:get_table("events"):open_perf_buffer(print_readline, "struct { uint64_t pid; char str[80]; }", nil)
Vicent Martidf11f322016-03-30 17:31:19 +020028
29 print("%-9s %-6s %s" % {"TIME", "PID", "COMMAND"})
Teng Qindbf00292018-02-28 21:47:50 -080030 b:perf_buffer_poll_loop()
Vicent Martidf11f322016-03-30 17:31:19 +020031end