Home | History | Annotate | Download | only in usdt

Lines Matching refs:Probe

54 Probe::Probe(const char *bin_path, const char *provider, const char *name,
63 bool Probe::in_shared_object(const std::string &bin_path) {
71 bool Probe::resolve_global_address(uint64_t *global, const std::string &bin_path,
82 bool Probe::add_to_semaphore(int16_t val) {
119 bool Probe::enable(const std::string &fn_name) {
135 bool Probe::disable() {
148 std::string Probe::largest_arg_type(size_t arg_n) {
161 bool Probe::usdt_getarg(std::ostream &stream) {
168 bool Probe::usdt_getarg(std::ostream &stream, const std::string& probe_func) {
214 void Probe::add_location(uint64_t addr, const std::string &bin_path, const char *fmt) {
218 void Probe::finalize_locations() {
230 void Context::_each_probe(const char *binpath, const struct bcc_elf_usdt *probe,
233 ctx->add_probe(binpath, probe);
249 void Context::add_probe(const char *binpath, const struct bcc_elf_usdt *probe) {
251 if (p->provider_ == probe->provider && p->name_ == probe->name) {
252 p->add_location(probe->pc, binpath, probe->arg_fmt);
258 new Probe(binpath, probe->provider, probe->name, probe->semaphore, pid_,
260 probes_.back()->add_location(probe->pc, binpath, probe->arg_fmt);
277 Probe *Context::get(const std::string &probe_name) {
285 Probe *Context::get(const std::string &provider_name,
302 Probe *found_probe = nullptr;
321 for (const auto &probe : probes_) {
323 info.provider = probe->provider().c_str();
324 info.bin_path = probe->bin_path().c_str();
325 info.name = probe->name().c_str();
326 info.semaphore = probe->semaphore();
327 info.num_locations = probe->num_locations();
328 info.num_arguments = probe->num_arguments();
354 for (const auto &probe : probes_)
355 probe->finalize_locations();
367 for (const auto &probe : probes_)
368 probe->finalize_locations();
383 for (const auto &probe : probes_)
384 probe->finalize_locations();
452 // uniquely identifies a probe.
458 USDT::Probe *p = ctx->get(j);
478 USDT::Probe *p = static_cast<USDT::Context *>(ctx)->get(probe_name);
493 USDT::Probe *probe = ctx->get(provider_name, probe_name);
494 if (!probe)
496 if (index < 0 || (size_t)index >= probe->num_locations())
498 location->address = probe->address(index);
499 location->bin_path = probe->location_bin_path(index);
508 USDT::Probe *probe = ctx->get(provider_name, probe_name);
509 if (!probe)
511 if (argument_index < 0 || (size_t)argument_index >= probe->num_arguments())
513 if (location_index < 0 || (size_t)location_index >= probe->num_locations())
515 auto const &location = probe->location(location_index);