This is useful when BPFStackTable is used by a long running program to
limit the memory usage, by removing the cached symbols of an exited
process.
bcc_free_symcache(it.second, it.first);
}
+void BPFStackTable::free_symcache(int pid) {
+ auto iter = pid_sym_.find(pid);
+ if (iter != pid_sym_.end()) {
+ bcc_free_symcache(iter->second, iter->first);
+ pid_sym_.erase(iter);
+ }
+}
+
void BPFStackTable::clear_table_non_atomic() {
for (int i = 0; size_t(i) < capacity(); i++) {
remove(&i);
BPFStackTable(BPFStackTable&& that);
~BPFStackTable();
+ void free_symcache(int pid);
void clear_table_non_atomic();
std::vector<uintptr_t> get_stack_addr(int stack_id);
std::vector<std::string> get_stack_symbol(int stack_id, int pid);