return (!stat(procfs_.c_str(), &s)) ? s.st_ino : -1;
}
-ProcStat::ProcStat(int pid) :
- procfs_(tfm::format("/proc/%d/exe", pid)),
- inode_(getinode_()) {}
+ProcStat::ProcStat(int pid)
+ : procfs_(tfm::format("/proc/%d/exe", pid)), inode_(getinode_()) {}
void KSyms::_add_symbol(const char *symname, uint64_t addr, void *p) {
KSyms *ks = static_cast<KSyms *>(p);
text = to_string(numcpu);
rewriter_.ReplaceText(SourceRange(Call->getLocStart(), Call->getLocEnd()), text);
} else if (Decl->getName() == "bpf_usdt_readarg_p") {
- text = "({ u64 __addr = 0x0; ";
- text += "_bpf_readarg_" + current_fn_ + "_" + args[0] + "(" +
- args[1] + ", &__addr, sizeof(__addr));";
- text += "bpf_probe_read(" + args[2] + ", " + args[3] +
- ", (void *)__addr);";
- text += "})";
- rewriter_.ReplaceText(
- SourceRange(Call->getLocStart(), Call->getLocEnd()), text);
+ text = "({ u64 __addr = 0x0; ";
+ text += "_bpf_readarg_" + current_fn_ + "_" + args[0] + "(" +
+ args[1] + ", &__addr, sizeof(__addr));";
+ text += "bpf_probe_read(" + args[2] + ", " + args[3] +
+ ", (void *)__addr);";
+ text += "})";
+ rewriter_.ReplaceText(
+ SourceRange(Call->getLocStart(), Call->getLocEnd()), text);
} else if (Decl->getName() == "bpf_usdt_readarg") {
- text = "_bpf_readarg_" + current_fn_ + "_" + args[0] + "(" +
- args[1] + ", " + args[2] + ", sizeof(*(" + args[2] + ")))";
- rewriter_.ReplaceText(
- SourceRange(Call->getLocStart(), Call->getLocEnd()), text);
- }
+ text = "_bpf_readarg_" + current_fn_ + "_" + args[0] + "(" + args[1] +
+ ", " + args[2] + ", sizeof(*(" + args[2] + ")))";
+ rewriter_.ReplaceText(
+ SourceRange(Call->getLocStart(), Call->getLocEnd()), text);
+ }
}
}
}
bool Probe::resolve_global_address(uint64_t *global, const uint64_t addr) {
if (in_shared_object()) {
- return (pid_ && !bcc_resolve_global_addr(
- *pid_, bin_path_.c_str(), addr, global));
+ return (pid_ &&
+ !bcc_resolve_global_addr(*pid_, bin_path_.c_str(), addr, global));
}
*global = addr;
std::string cptr = tfm::format("*((%s *)dest)", ctype);
tfm::format(stream,
- "static inline int _bpf_readarg_%s_%d("
- "struct pt_regs *ctx, void *dest, size_t len) {\n"
- " if (len != sizeof(%s)) return -1;\n",
- attached_to_.value(), arg_n + 1, ctype);
+ "static inline int _bpf_readarg_%s_%d("
+ "struct pt_regs *ctx, void *dest, size_t len) {\n"
+ " if (len != sizeof(%s)) return -1;\n",
+ attached_to_.value(), arg_n + 1, ctype);
if (locations_.size() == 1) {
Location &location = locations_.front();
stream << " ";
- if (!location.arguments_[arg_n].assign_to_local(stream, cptr,
- bin_path_, pid_))
+ if (!location.arguments_[arg_n].assign_to_local(stream, cptr, bin_path_,
+ pid_))
return false;
stream << "\n return 0;\n}\n";
} else {
return false;
tfm::format(stream, " case 0x%xULL: ", global_address);
- if (!location.arguments_[arg_n].assign_to_local(stream, cptr,
- bin_path_, pid_))
+ if (!location.arguments_[arg_n].assign_to_local(stream, cptr, bin_path_,
+ pid_))
return false;
stream << " return 0;\n";
}
}
- probes_.emplace_back(new Probe(binpath, probe->provider,
- probe->name, probe->semaphore, pid_));
+ probes_.emplace_back(
+ new Probe(binpath, probe->provider, probe->name, probe->semaphore, pid_));
probes_.back()->add_location(probe->pc, probe->arg_fmt);
}
Context::~Context() {
if (pid_stat_ && !pid_stat_->is_stale()) {
- for (auto &p : probes_)
- p->disable();
+ for (auto &p : probes_) p->disable();
}
}
}