diff --git a/.cirrus.yml b/.cirrus.yml index 80996a3b..80bc350b 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -11,7 +11,6 @@ task: - curl https://sh.rustup.rs -sSf --output rustup.sh - sh rustup.sh -y - . $HOME/.cargo/env - - rustup component add rustfmt submodule_script: - git submodule sync --recursive - git submodule update --init --recursive diff --git a/Cargo.toml b/Cargo.toml index 67012099..3ba0d4c1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,7 +40,6 @@ rand = "0.7" rgb = "0.8.13" str_stack = "0.1" structopt = { version = "0.2", optional = true } -symbolic-demangle = "6.1.3" [dev-dependencies] assert_cmd = "0.11" diff --git a/src/bin/collapse-dtrace.rs b/src/bin/collapse-dtrace.rs index 89da3011..897ec4f5 100644 --- a/src/bin/collapse-dtrace.rs +++ b/src/bin/collapse-dtrace.rs @@ -26,10 +26,6 @@ struct Opt { // ************* // // *** FLAGS *** // // ************* // - /// Demangle function names - #[structopt(long = "demangle")] - demangle: bool, - /// Include offsets #[structopt(long = "includeoffset")] includeoffset: bool, @@ -67,7 +63,6 @@ impl Opt { ( self.infile, Options { - demangle: self.demangle, includeoffset: self.includeoffset, nthreads: self.nthreads, }, diff --git a/src/bin/collapse-perf.rs b/src/bin/collapse-perf.rs index 9e6ba0da..02f0fa95 100644 --- a/src/bin/collapse-perf.rs +++ b/src/bin/collapse-perf.rs @@ -34,10 +34,6 @@ struct Opt { #[structopt(long = "all")] all: bool, - /// Demangle function names - #[structopt(long = "demangle")] - demangle: bool, - /// Annotate jit functions with a _[j] #[structopt(long = "jit")] jit: bool, @@ -96,7 +92,6 @@ impl Opt { include_addrs: self.addrs, annotate_jit: self.jit || self.all, annotate_kernel: self.kernel || self.all, - demangle: self.demangle, event_filter: self.event_filter, nthreads: self.nthreads, }, diff --git a/src/collapse/dtrace.rs b/src/collapse/dtrace.rs index ab0d8929..b05f4cc1 100644 --- a/src/collapse/dtrace.rs +++ b/src/collapse/dtrace.rs @@ -9,11 +9,6 @@ use crate::collapse::common::{self, CollapsePrivate, Occurrences}; /// `dtrace` folder configuration options. #[derive(Clone, Debug)] pub struct Options { - /// Demangle function names. - /// - /// Default is `false`. - pub demangle: bool, - /// Include function offset (except leafs). /// /// Default is `false`. @@ -28,7 +23,6 @@ pub struct Options { impl Default for Options { fn default() -> Self { Self { - demangle: false, includeoffset: false, nthreads: *common::DEFAULT_NTHREADS, } @@ -301,17 +295,16 @@ impl Folder { ) } - // Transforms the function part of a frame with the given function. - fn transform_function_name<'a, F>(&self, frame: &'a str, transform: F) -> Cow<'a, str> - where - F: Fn(&'a str) -> Cow<'a, str>, - { + // DTrace doesn't properly demangle Rust function names, so fix those. + fn fix_rust_symbol<'a>(&self, frame: &'a str) -> Cow<'a, str> { let mut parts = frame.splitn(2, '`'); if let (Some(pname), Some(func)) = (parts.next(), parts.next()) { if self.opt.includeoffset { let mut parts = func.rsplitn(2, '+'); if let (Some(offset), Some(func)) = (parts.next(), parts.next()) { - if let Cow::Owned(func) = transform(func.trim_end()) { + if let Cow::Owned(func) = + common::fix_partially_demangled_rust_symbol(func.trim_end()) + { return Cow::Owned(format!("{}`{}+{}", pname, func, offset)); } else { return Cow::Borrowed(frame); @@ -319,7 +312,7 @@ impl Folder { } } - if let Cow::Owned(func) = transform(func.trim_end()) { + if let Cow::Owned(func) = common::fix_partially_demangled_rust_symbol(func.trim_end()) { return Cow::Owned(format!("{}`{}", pname, func)); } } @@ -327,16 +320,6 @@ impl Folder { Cow::Borrowed(frame) } - // Demangle the function name if it's mangled. - fn demangle<'a>(&self, frame: &'a str) -> Cow<'a, str> { - self.transform_function_name(frame, symbolic_demangle::demangle) - } - - // DTrace doesn't properly demangle Rust function names, so fix those. - fn fix_rust_symbol<'a>(&self, frame: &'a str) -> Cow<'a, str> { - self.transform_function_name(frame, common::fix_partially_demangled_rust_symbol) - } - // we have a stack line that shows one stack entry from the preceeding event, like: // // unix`tsc_gethrtimeunscaled+0x21 @@ -357,8 +340,6 @@ impl Folder { let frame = if frame.is_empty() { Cow::Borrowed("-") - } else if self.opt.demangle { - self.demangle(frame) } else { self.fix_rust_symbol(frame) }; @@ -546,7 +527,6 @@ mod tests { loop { let nstacks_per_job = rng.gen_range(1, 500 + 1); let options = Options { - demangle: rng.gen(), includeoffset: rng.gen(), nthreads: rng.gen_range(2, 32 + 1), }; diff --git a/src/collapse/perf.rs b/src/collapse/perf.rs index a422ac45..38c5e640 100644 --- a/src/collapse/perf.rs +++ b/src/collapse/perf.rs @@ -1,8 +1,6 @@ use std::collections::VecDeque; use std::io::{self, BufRead}; -use symbolic_demangle::demangle; - use crate::collapse::common::{self, CollapsePrivate, Occurrences}; const TIDY_GENERIC: bool = true; @@ -37,11 +35,6 @@ pub struct Options { /// Default is `false`. pub annotate_kernel: bool, - /// Demangle function names. - /// - /// Default is `false`. - pub demangle: bool, - /// Only consider samples of the given event type (see `perf list`). If this option is /// set to `None`, it will be set to the first encountered event type. /// @@ -75,7 +68,6 @@ impl Default for Options { Self { annotate_jit: false, annotate_kernel: false, - demangle: false, event_filter: None, include_addrs: false, include_pid: false, @@ -443,13 +435,9 @@ impl Folder { return; } - let rawfunc = if self.opt.demangle { - demangle(rawfunc) - } else { - // perf mostly demangles Rust symbols, - // but this will fix the things it gets wrong - common::fix_partially_demangled_rust_symbol(rawfunc) - }; + // perf mostly demangles Rust symbols, + // but this will fix the things it gets wrong + let rawfunc = common::fix_partially_demangled_rust_symbol(rawfunc); // Support Java inlining by splitting on "->". After the first func, the // rest are annotated with "_[i]" to mark them as inlined. @@ -705,7 +693,6 @@ mod tests { let options = Options { annotate_jit: rng.gen(), annotate_kernel: rng.gen(), - demangle: rng.gen(), event_filter: None, include_addrs: rng.gen(), include_pid: rng.gen(), diff --git a/tests/collapse-dtrace.rs b/tests/collapse-dtrace.rs index 44ea5f72..60370b69 100644 --- a/tests/collapse-dtrace.rs +++ b/tests/collapse-dtrace.rs @@ -125,37 +125,6 @@ fn collapse_dtrace_rust_names() { test_collapse_dtrace(test_file, result_file, Options::default()).unwrap() } -#[test] -fn collapse_dtrace_demangle() { - let test_file = "./tests/data/collapse-dtrace/mangled.txt"; - let result_file = "./tests/data/collapse-dtrace/results/demangled.txt"; - test_collapse_dtrace( - test_file, - result_file, - Options { - demangle: true, - ..Default::default() - }, - ) - .unwrap() -} - -#[test] -fn collapse_dtrace_demangle_includeoffset() { - let test_file = "./tests/data/collapse-dtrace/mangled.txt"; - let result_file = "./tests/data/collapse-dtrace/results/demangled_with_offsets.txt"; - test_collapse_dtrace( - test_file, - result_file, - Options { - demangle: true, - includeoffset: true, - ..Default::default() - }, - ) - .unwrap() -} - #[test] fn collapse_dtrace_cli() { let input_file = "./flamegraph/example-dtrace-stacks.txt"; diff --git a/tests/collapse-perf.rs b/tests/collapse-perf.rs index 33a9d81e..147938aa 100644 --- a/tests/collapse-perf.rs +++ b/tests/collapse-perf.rs @@ -283,22 +283,6 @@ fn collapse_perf_should_warn_about_weird_input_lines() { ); } -#[test] -fn collapse_perf_demangle() { - let test_file = "./tests/data/collapse-perf/mangled.txt"; - let result_file = "./tests/data/collapse-perf/results/demangled.txt"; - test_collapse_perf( - test_file, - result_file, - Options { - demangle: true, - ..Default::default() - }, - false, - ) - .unwrap() -} - #[test] fn collapse_perf_cli() { let input_file = "./flamegraph/test/perf-vertx-stacks-01.txt"; diff --git a/tests/data/collapse-dtrace/mangled.txt b/tests/data/collapse-dtrace/mangled.txt deleted file mode 100644 index 986ccfc5..00000000 --- a/tests/data/collapse-dtrace/mangled.txt +++ /dev/null @@ -1,87 +0,0 @@ -CPU ID FUNCTION:NAME - 6 29091 :tick-60s - - - rg`__ZN13grep_searcher8searcher8Searcher11search_path17h4867309d69f27419E+0x10a0 - rg`__ZN2rg15search_parallel28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h6e849b55a66fcd85E+0xac - rg`__ZN6ignore4walk6Worker3run17h428457710ae7645aE+0x40b - rg`__ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h71644e3bf9e2bb80E+0x25 - rg`__ZN3std9panicking3try7do_call17h08ca64c12e8a9bb0E.llvm.15516475458848885060+0x25 - rg`__rust_maybe_catch_panic+0x1f - rg`__ZN50_$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$8call_box17h8612a2a83552fc2dE+0xa5 - rg`__ZN3std10sys_common6thread12start_thread17he4c2173d5991c786E+0x88 - rg`__ZN3std3sys4unix6thread6Thread3new12thread_start17h8b5ec703435993e3E+0x9 - libsystem_pthread.dylib`_pthread_body+0x7e - libsystem_pthread.dylib`_pthread_start+0x42 - libsystem_pthread.dylib`thread_start+0xd - 1 - - rg`__ZN13grep_searcher11line_buffer10LineBuffer15ensure_capacity17h9368c0fb20c34d8dE - rg`__ZN91_$LT$grep_searcher..searcher..glue..ReadByLine$LT$$u27$s$C$$u20$M$C$$u20$R$C$$u20$S$GT$$GT$3run17h30ecedc997ad7e32E+0x127 - rg`__ZN13grep_searcher8searcher8Searcher11search_path17h4867309d69f27419E+0xb59 - rg`__ZN42_$LT$rg..search..SearchWorker$LT$W$GT$$GT$11search_impl17hcf61284e58f410e0E.llvm.17269878581919215071+0x1585 - rg`__ZN2rg15search_parallel28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h6e849b55a66fcd85E+0xac - rg`__ZN6ignore4walk6Worker3run17h428457710ae7645aE+0x40b - rg`__ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h71644e3bf9e2bb80E+0x25 - rg`__ZN3std9panicking3try7do_call17h08ca64c12e8a9bb0E.llvm.15516475458848885060+0x25 - rg`__rust_maybe_catch_panic+0x1f - rg`__ZN50_$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$8call_box17h8612a2a83552fc2dE+0xa5 - rg`__ZN3std10sys_common6thread12start_thread17he4c2173d5991c786E+0x88 - rg`__ZN3std3sys4unix6thread6Thread3new12thread_start17h8b5ec703435993e3E+0x9 - libsystem_pthread.dylib`_pthread_body+0x7e - libsystem_pthread.dylib`_pthread_start+0x42 - libsystem_pthread.dylib`thread_start+0xd - 1 - - rg`__ZN14encoding_rs_io4util11PossibleBom8as_slice17h2cc2deba7651dc2aE - rg`__ZN85_$LT$encoding_rs_io..DecodeReaderBytes$LT$R$C$$u20$B$GT$$u20$as$u20$std..io..Read$GT$4read17h19bd185b1317f06cE+0x50 - rg`__ZN76_$LT$grep_searcher..line_buffer..LineBufferReader$LT$$u27$b$C$$u20$R$GT$$GT$4fill17h5bc5eae4aa7991dbE+0x9f - rg`__ZN91_$LT$grep_searcher..searcher..glue..ReadByLine$LT$$u27$s$C$$u20$M$C$$u20$R$C$$u20$S$GT$$GT$3run17h30ecedc997ad7e32E+0x127 - rg`__ZN13grep_searcher8searcher8Searcher11search_path17h4867309d69f27419E+0xb59 - rg`__ZN42_$LT$rg..search..SearchWorker$LT$W$GT$$GT$11search_impl17hcf61284e58f410e0E.llvm.17269878581919215071+0x1585 - rg`__ZN2rg15search_parallel28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h6e849b55a66fcd85E+0xac - rg`__ZN6ignore4walk6Worker3run17h428457710ae7645aE+0x40b - rg`__ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h71644e3bf9e2bb80E+0x25 - rg`__ZN3std9panicking3try7do_call17h08ca64c12e8a9bb0E.llvm.15516475458848885060+0x25 - rg`__rust_maybe_catch_panic+0x1f - rg`__ZN50_$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$8call_box17h8612a2a83552fc2dE+0xa5 - rg`__ZN3std10sys_common6thread12start_thread17he4c2173d5991c786E+0x88 - rg`__ZN3std3sys4unix6thread6Thread3new12thread_start17h8b5ec703435993e3E+0x9 - libsystem_pthread.dylib`_pthread_body+0x7e - libsystem_pthread.dylib`_pthread_start+0x42 - libsystem_pthread.dylib`thread_start+0xd - 1 - - rg`__ZN6memchr3x863avx6memchr17hc74ea6bdc6b1e860E+0xa1 - rg`__ZN91_$LT$grep_searcher..searcher..glue..ReadByLine$LT$$u27$s$C$$u20$M$C$$u20$R$C$$u20$S$GT$$GT$3run17h30ecedc997ad7e32E+0x127 - rg`__ZN13grep_searcher8searcher8Searcher11search_path17h4867309d69f27419E+0xb59 - rg`__ZN42_$LT$rg..search..SearchWorker$LT$W$GT$$GT$11search_impl17hcf61284e58f410e0E.llvm.17269878581919215071+0x1585 - rg`__ZN2rg15search_parallel28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h6e849b55a66fcd85E+0xac - rg`__ZN6ignore4walk6Worker3run17h428457710ae7645aE+0x40b - rg`__ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h71644e3bf9e2bb80E+0x25 - rg`__ZN3std9panicking3try7do_call17h08ca64c12e8a9bb0E.llvm.15516475458848885060+0x25 - rg`__rust_maybe_catch_panic+0x1f - rg`__ZN50_$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$8call_box17h8612a2a83552fc2dE+0xa5 - rg`__ZN3std10sys_common6thread12start_thread17he4c2173d5991c786E+0x88 - rg`__ZN3std3sys4unix6thread6Thread3new12thread_start17h8b5ec703435993e3E+0x9 - libsystem_pthread.dylib`_pthread_body+0x7e - libsystem_pthread.dylib`_pthread_start+0x42 - libsystem_pthread.dylib`thread_start+0xd - 1 - - rg`__ZN13grep_searcher11line_buffer10LineBuffer15ensure_capacity17h9368c0fb20c34d8dE+0x1 - rg`__ZN91_$LT$grep_searcher..searcher..glue..ReadByLine$LT$$u27$s$C$$u20$M$C$$u20$R$C$$u20$S$GT$$GT$3run17h30ecedc997ad7e32E+0x127 - rg`__ZN13grep_searcher8searcher8Searcher11search_path17h4867309d69f27419E+0xb59 - rg`__ZN42_$LT$rg..search..SearchWorker$LT$W$GT$$GT$11search_impl17hcf61284e58f410e0E.llvm.17269878581919215071+0x1585 - rg`__ZN2rg15search_parallel28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h6e849b55a66fcd85E+0xac - rg`__ZN6ignore4walk6Worker3run17h428457710ae7645aE+0x40b - rg`__ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h71644e3bf9e2bb80E+0x25 - rg`__ZN3std9panicking3try7do_call17h08ca64c12e8a9bb0E.llvm.15516475458848885060+0x25 - rg`__rust_maybe_catch_panic+0x1f - rg`__ZN50_$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$8call_box17h8612a2a83552fc2dE+0xa5 - rg`__ZN3std10sys_common6thread12start_thread17he4c2173d5991c786E+0x88 - rg`__ZN3std3sys4unix6thread6Thread3new12thread_start17h8b5ec703435993e3E+0x9 - libsystem_pthread.dylib`_pthread_body+0x7e - libsystem_pthread.dylib`_pthread_start+0x42 - libsystem_pthread.dylib`thread_start+0xd - 1 diff --git a/tests/data/collapse-dtrace/results/demangled.txt b/tests/data/collapse-dtrace/results/demangled.txt deleted file mode 100644 index 7958c749..00000000 --- a/tests/data/collapse-dtrace/results/demangled.txt +++ /dev/null @@ -1,4 +0,0 @@ -libsystem_pthread.dylib`thread_start;libsystem_pthread.dylib`_pthread_start;libsystem_pthread.dylib`_pthread_body;rg`std::sys::unix::thread::Thread::new::thread_start;rg`std::sys_common::thread::start_thread;rg`>::call_box;rg`__rust_maybe_catch_panic;rg`std::panicking::try::do_call;rg`std::sys_common::backtrace::__rust_begin_short_backtrace;rg`ignore::walk::Worker::run;rg`rg::search_parallel::{{closure}}::{{closure}};rg`>::search_impl;rg`grep_searcher::searcher::Searcher::search_path;rg`>::run;rg`>::fill;rg` as std::io::Read>::read;rg`encoding_rs_io::util::PossibleBom::as_slice 1 -libsystem_pthread.dylib`thread_start;libsystem_pthread.dylib`_pthread_start;libsystem_pthread.dylib`_pthread_body;rg`std::sys::unix::thread::Thread::new::thread_start;rg`std::sys_common::thread::start_thread;rg`>::call_box;rg`__rust_maybe_catch_panic;rg`std::panicking::try::do_call;rg`std::sys_common::backtrace::__rust_begin_short_backtrace;rg`ignore::walk::Worker::run;rg`rg::search_parallel::{{closure}}::{{closure}};rg`>::search_impl;rg`grep_searcher::searcher::Searcher::search_path;rg`>::run;rg`grep_searcher::line_buffer::LineBuffer::ensure_capacity 2 -libsystem_pthread.dylib`thread_start;libsystem_pthread.dylib`_pthread_start;libsystem_pthread.dylib`_pthread_body;rg`std::sys::unix::thread::Thread::new::thread_start;rg`std::sys_common::thread::start_thread;rg`>::call_box;rg`__rust_maybe_catch_panic;rg`std::panicking::try::do_call;rg`std::sys_common::backtrace::__rust_begin_short_backtrace;rg`ignore::walk::Worker::run;rg`rg::search_parallel::{{closure}}::{{closure}};rg`>::search_impl;rg`grep_searcher::searcher::Searcher::search_path;rg`>::run;rg`memchr::x86::avx::memchr 1 -libsystem_pthread.dylib`thread_start;libsystem_pthread.dylib`_pthread_start;libsystem_pthread.dylib`_pthread_body;rg`std::sys::unix::thread::Thread::new::thread_start;rg`std::sys_common::thread::start_thread;rg`>::call_box;rg`__rust_maybe_catch_panic;rg`std::panicking::try::do_call;rg`std::sys_common::backtrace::__rust_begin_short_backtrace;rg`ignore::walk::Worker::run;rg`rg::search_parallel::{{closure}}::{{closure}};rg`grep_searcher::searcher::Searcher::search_path 1 diff --git a/tests/data/collapse-dtrace/results/demangled_with_offsets.txt b/tests/data/collapse-dtrace/results/demangled_with_offsets.txt deleted file mode 100644 index aa1ec551..00000000 --- a/tests/data/collapse-dtrace/results/demangled_with_offsets.txt +++ /dev/null @@ -1,4 +0,0 @@ -libsystem_pthread.dylib`thread_start+0xd;libsystem_pthread.dylib`_pthread_start+0x42;libsystem_pthread.dylib`_pthread_body+0x7e;rg`std::sys::unix::thread::Thread::new::thread_start+0x9;rg`std::sys_common::thread::start_thread+0x88;rg`>::call_box+0xa5;rg`__rust_maybe_catch_panic+0x1f;rg`std::panicking::try::do_call+0x25;rg`std::sys_common::backtrace::__rust_begin_short_backtrace+0x25;rg`ignore::walk::Worker::run+0x40b;rg`rg::search_parallel::{{closure}}::{{closure}}+0xac;rg`>::search_impl+0x1585;rg`grep_searcher::searcher::Searcher::search_path+0xb59;rg`>::run+0x127;rg`>::fill+0x9f;rg` as std::io::Read>::read+0x50;rg`encoding_rs_io::util::PossibleBom::as_slice 1 -libsystem_pthread.dylib`thread_start+0xd;libsystem_pthread.dylib`_pthread_start+0x42;libsystem_pthread.dylib`_pthread_body+0x7e;rg`std::sys::unix::thread::Thread::new::thread_start+0x9;rg`std::sys_common::thread::start_thread+0x88;rg`>::call_box+0xa5;rg`__rust_maybe_catch_panic+0x1f;rg`std::panicking::try::do_call+0x25;rg`std::sys_common::backtrace::__rust_begin_short_backtrace+0x25;rg`ignore::walk::Worker::run+0x40b;rg`rg::search_parallel::{{closure}}::{{closure}}+0xac;rg`>::search_impl+0x1585;rg`grep_searcher::searcher::Searcher::search_path+0xb59;rg`>::run+0x127;rg`grep_searcher::line_buffer::LineBuffer::ensure_capacity 2 -libsystem_pthread.dylib`thread_start+0xd;libsystem_pthread.dylib`_pthread_start+0x42;libsystem_pthread.dylib`_pthread_body+0x7e;rg`std::sys::unix::thread::Thread::new::thread_start+0x9;rg`std::sys_common::thread::start_thread+0x88;rg`>::call_box+0xa5;rg`__rust_maybe_catch_panic+0x1f;rg`std::panicking::try::do_call+0x25;rg`std::sys_common::backtrace::__rust_begin_short_backtrace+0x25;rg`ignore::walk::Worker::run+0x40b;rg`rg::search_parallel::{{closure}}::{{closure}}+0xac;rg`>::search_impl+0x1585;rg`grep_searcher::searcher::Searcher::search_path+0xb59;rg`>::run+0x127;rg`memchr::x86::avx::memchr 1 -libsystem_pthread.dylib`thread_start+0xd;libsystem_pthread.dylib`_pthread_start+0x42;libsystem_pthread.dylib`_pthread_body+0x7e;rg`std::sys::unix::thread::Thread::new::thread_start+0x9;rg`std::sys_common::thread::start_thread+0x88;rg`>::call_box+0xa5;rg`__rust_maybe_catch_panic+0x1f;rg`std::panicking::try::do_call+0x25;rg`std::sys_common::backtrace::__rust_begin_short_backtrace+0x25;rg`ignore::walk::Worker::run+0x40b;rg`rg::search_parallel::{{closure}}::{{closure}}+0xac;rg`grep_searcher::searcher::Searcher::search_path 1 diff --git a/tests/data/collapse-perf/mangled.txt b/tests/data/collapse-perf/mangled.txt deleted file mode 100644 index 49ee0c95..00000000 --- a/tests/data/collapse-perf/mangled.txt +++ /dev/null @@ -1,99 +0,0 @@ -inferno-flamegr 11728 150317.785308: 250000 cpu-clock:uhH: - 7f0f22ebd4ba handle_intel.constprop.1+0x6a (/usr/lib/libc-2.28.so) - 7f0f22e3cc00 init_cacheinfo+0x110 (/usr/lib/libc-2.28.so) - 7f0f2304a549 call_init.part.0+0x99 (/usr/lib/ld-2.28.so) - 7f0f2304a649 _dl_init+0x79 (/usr/lib/ld-2.28.so) - 7f0f2303c039 _dl_start_user+0x31 (/usr/lib/ld-2.28.so) - -inferno-flamegr 11728 150317.788989: 250000 cpu-clock:uhH: - 560b65a8aa4d _ZN156_$LT$std..collections..hash..table..FullBucket$LT$K$C$$u20$V$C$$u20$$RF$$u27$t$u20$mut$u20$std..collections..hash..table..RawTable$LT$K$C$$u20$V$GT$$GT$$GT$4take17hf02b8d52a6d1fac5E+0x1cd (inlined) - 560b65a8aa4d _ZN3std11collections4hash3map12pop_internal17h8e26b8e3b84b0987E+0x1cd (inlined) - 560b65a8aa4d _ZN72_$LT$std..collections..hash..map..HashMap$LT$K$C$$u20$V$C$$u20$S$GT$$GT$6remove28_$u7b$$u7b$closure$u7d$$u7d$17ha764a6bc24af09ecE+0x1cd (inlined) - 560b65a8aa4d _ZN38_$LT$core..option..Option$LT$T$GT$$GT$3map17h540246040b56a5bcE+0x1cd (inlined) - 560b65a8aa4d _ZN72_$LT$std..collections..hash..map..HashMap$LT$K$C$$u20$V$C$$u20$S$GT$$GT$6remove17h5327add6a3bd1019E+0x1cd (inferno/target/release/inferno-flamegraph) - 560b65a8e354 _ZN7inferno10flamegraph5merge4flow17hfc9bea06782bbbe8E+0x5b4 (inferno/target/release/inferno-flamegraph) - 560b65a8ed39 _ZN7inferno10flamegraph5merge6frames17hacfe2d67301633c2E+0x419 (inferno/target/release/inferno-flamegraph) - 560b65a6dec4 _ZN7inferno10flamegraph10from_lines17hbe700b4595c52449E+0xb04 (inferno/target/release/inferno-flamegraph) - 560b65a6cd95 _ZN7inferno10flamegraph12from_readers17h1f4a09fd80fc6478E+0x12d5 (inlined) - 560b65a6cd95 _ZN7inferno10flamegraph11from_reader17h1b0a3b19342e0102E+0x12d5 (inlined) - 560b65a6cd95 _ZN7inferno10flamegraph10from_files17he2ae59d000587309E+0x12d5 (inferno/target/release/inferno-flamegraph) - 560b65a88789 _ZN18inferno_flamegraph4main17h80ee04565b2fc086E+0x929 (inferno/target/release/inferno-flamegraph) - 560b65a72c31 _ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h9efaa4abd3ddf1b3E+0x11 (inferno/target/release/inferno-flamegraph) - 560b65b95492 _ZN3std2rt19lang_start_internal28_$u7b$$u7b$closure$u7d$$u7d$17hdfc28107b5be47c9E+0x12 (inlined) - 560b65b95492 _ZN3std9panicking3try7do_call17h69790245ac2d03feE+0x12 (inferno/target/release/inferno-flamegraph) - 560b65ba38d9 __rust_maybe_catch_panic+0x19 (inferno/target/release/inferno-flamegraph) - 560b65b95e63 _ZN3std9panicking3try17h9c1cbc5599e1efbfE+0x203 (inlined) - 560b65b95e63 _ZN3std5panic12catch_unwind17h0562757d03ff60b3E+0x203 (inlined) - 560b65b95e63 _ZN3std2rt19lang_start_internal17h540c897fe52ba9c5E+0x203 (inferno/target/release/inferno-flamegraph) - 560b65a88e37 main+0x27 (inferno/target/release/inferno-flamegraph) - 7f0f22e3d222 __libc_start_main+0xf2 (/usr/lib/libc-2.28.so) - 560b65a6b15d _start+0x2d (inferno/target/release/inferno-flamegraph) - -inferno-flamegr 11728 150317.789122: 250000 cpu-clock:uhH: - 560b65ba9b6f _ZN4core5slice6memchr6memchr17h4201b5ac6ed87fc2E+0xef (inferno/target/release/inferno-flamegraph) - 560b65a8cfdc _ZN109_$LT$core..str..pattern..CharSearcher$LT$$u27$a$GT$$u20$as$u20$core..str..pattern..Searcher$LT$$u27$a$GT$$GT$10next_match17h57479c8178dcbc98E+0x4c (inlined) - 560b65a8cfdc _ZN56_$LT$core..str..SplitInternal$LT$$u27$a$C$$u20$P$GT$$GT$4next17hc59dfcb114a11b7eE+0x4c (inferno/target/release/inferno-flamegraph) - 560b65a8df48 _ZN7inferno10flamegraph5merge4flow17hfc9bea06782bbbe8E+0x1a8 (inferno/target/release/inferno-flamegraph) - 560b65a8df48 _ZN38_$LT$core..iter..Peekable$LT$I$GT$$GT$4peek17h9d6fcd3640686ee1E+0x1a8 (inlined) - 560b65a8df48 _ZN7inferno10flamegraph5merge4flow17hfc9bea06782bbbe8E+0x1a8 (inferno/target/release/inferno-flamegraph) - 560b65a8ed39 _ZN7inferno10flamegraph5merge6frames17hacfe2d67301633c2E+0x419 (inferno/target/release/inferno-flamegraph) - 560b65a6dec4 _ZN7inferno10flamegraph10from_lines17hbe700b4595c52449E+0xb04 (inferno/target/release/inferno-flamegraph) - 560b65a6cd95 _ZN7inferno10flamegraph12from_readers17h1f4a09fd80fc6478E+0x12d5 (inlined) - 560b65a6cd95 _ZN7inferno10flamegraph11from_reader17h1b0a3b19342e0102E+0x12d5 (inlined) - 560b65a6cd95 _ZN7inferno10flamegraph10from_files17he2ae59d000587309E+0x12d5 (inferno/target/release/inferno-flamegraph) - 560b65a88789 _ZN18inferno_flamegraph4main17h80ee04565b2fc086E+0x929 (inferno/target/release/inferno-flamegraph) - 560b65a72c31 _ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h9efaa4abd3ddf1b3E+0x11 (inferno/target/release/inferno-flamegraph) - 560b65b95492 _ZN3std2rt19lang_start_internal28_$u7b$$u7b$closure$u7d$$u7d$17hdfc28107b5be47c9E+0x12 (inlined) - 560b65b95492 _ZN3std9panicking3try7do_call17h69790245ac2d03feE+0x12 (inferno/target/release/inferno-flamegraph) - 560b65ba38d9 __rust_maybe_catch_panic+0x19 (inferno/target/release/inferno-flamegraph) - 560b65b95e63 _ZN3std9panicking3try17h9c1cbc5599e1efbfE+0x203 (inlined) - 560b65b95e63 _ZN3std5panic12catch_unwind17h0562757d03ff60b3E+0x203 (inlined) - 560b65b95e63 _ZN3std2rt19lang_start_internal17h540c897fe52ba9c5E+0x203 (inferno/target/release/inferno-flamegraph) - 560b65a88e37 main+0x27 (inferno/target/release/inferno-flamegraph) - 7f0f22e3d222 __libc_start_main+0xf2 (/usr/lib/libc-2.28.so) - 560b65a6b15d _start+0x2d (inferno/target/release/inferno-flamegraph) - -inferno-flamegr 11728 150317.790329: 250000 cpu-clock:uhH: - 7f0f22f74cf0 __memcmp_avx2_movbe+0x0 (/usr/lib/libc-2.28.so) - 560b65a900d9 _ZN68_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..SlicePartialEq$LT$A$GT$$GT$5equal17h2b4f655ef983c429E+0xc9 (inlined) - 560b65a900d9 _ZN4core5slice81_$LT$impl$u20$core..cmp..PartialEq$LT$$u5b$B$u5d$$GT$$u20$for$u20$$u5b$A$u5d$$GT$2eq17h05db67084362255dE+0xc9 (inlined) - 560b65a900d9 _ZN4core3cmp5impls91_$LT$impl$u20$core..cmp..PartialEq$LT$$RF$$u27$b$u20$B$GT$$u20$for$u20$$RF$$u27$a$u20$A$GT$2eq17h80fb884a22a2c02fE+0xc9 (inlined) - 560b65a900d9 _ZN116_$LT$core..str..pattern..CharSearcher$LT$$u27$a$GT$$u20$as$u20$core..str..pattern..ReverseSearcher$LT$$u27$a$GT$$GT$15next_match_back17h09d544049dd719bbE+0xc9 (inlined) - 560b65a900d9 _ZN4core3str21_$LT$impl$u20$str$GT$5rfind17hf9dea3c1f950070bE+0xc9 (inlined) - 560b65a900d9 _ZN7inferno10flamegraph5merge13rfind_samples17h9cb7004aaf522de1E+0xc9 (inferno/target/release/inferno-flamegraph) - 560b65a8fd55 _ZN7inferno10flamegraph5merge14parse_nsamples17hce2b37809d3f7c38E+0x25 (inferno/target/release/inferno-flamegraph) - 560b65a8eaa8 _ZN7inferno10flamegraph5merge6frames17hacfe2d67301633c2E+0x188 (inferno/target/release/inferno-flamegraph) - 560b65a6dec4 _ZN7inferno10flamegraph10from_lines17hbe700b4595c52449E+0xb04 (inferno/target/release/inferno-flamegraph) - 560b65a6cd95 _ZN7inferno10flamegraph12from_readers17h1f4a09fd80fc6478E+0x12d5 (inlined) - 560b65a6cd95 _ZN7inferno10flamegraph11from_reader17h1b0a3b19342e0102E+0x12d5 (inlined) - 560b65a6cd95 _ZN7inferno10flamegraph10from_files17he2ae59d000587309E+0x12d5 (inferno/target/release/inferno-flamegraph) - 560b65a88789 _ZN18inferno_flamegraph4main17h80ee04565b2fc086E+0x929 (inferno/target/release/inferno-flamegraph) - 560b65a72c31 _ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h9efaa4abd3ddf1b3E+0x11 (inferno/target/release/inferno-flamegraph) - 560b65b95492 _ZN3std2rt19lang_start_internal28_$u7b$$u7b$closure$u7d$$u7d$17hdfc28107b5be47c9E+0x12 (inlined) - 560b65b95492 _ZN3std9panicking3try7do_call17h69790245ac2d03feE+0x12 (inferno/target/release/inferno-flamegraph) - 560b65ba38d9 __rust_maybe_catch_panic+0x19 (inferno/target/release/inferno-flamegraph) - 560b65b95e63 _ZN3std9panicking3try17h9c1cbc5599e1efbfE+0x203 (inlined) - 560b65b95e63 _ZN3std5panic12catch_unwind17h0562757d03ff60b3E+0x203 (inlined) - 560b65b95e63 _ZN3std2rt19lang_start_internal17h540c897fe52ba9c5E+0x203 (inferno/target/release/inferno-flamegraph) - 560b65a88e37 main+0x27 (inferno/target/release/inferno-flamegraph) - 7f0f22e3d222 __libc_start_main+0xf2 (/usr/lib/libc-2.28.so) - 560b65a6b15d _start+0x2d (inferno/target/release/inferno-flamegraph) - -inferno-flamegr 11728 150317.791447: 250000 cpu-clock:uhH: - 560b65a8e7a8 _ZN7inferno10flamegraph5merge4flow17hfc9bea06782bbbe8E+0xa08 (inferno/target/release/inferno-flamegraph) - 560b65a8ed39 _ZN7inferno10flamegraph5merge6frames17hacfe2d67301633c2E+0x419 (inferno/target/release/inferno-flamegraph) - 560b65a6dec4 _ZN7inferno10flamegraph10from_lines17hbe700b4595c52449E+0xb04 (inferno/target/release/inferno-flamegraph) - 560b65a6cd95 _ZN7inferno10flamegraph12from_readers17h1f4a09fd80fc6478E+0x12d5 (inlined) - 560b65a6cd95 _ZN7inferno10flamegraph11from_reader17h1b0a3b19342e0102E+0x12d5 (inlined) - 560b65a6cd95 _ZN7inferno10flamegraph10from_files17he2ae59d000587309E+0x12d5 (inferno/target/release/inferno-flamegraph) - 560b65a88789 _ZN18inferno_flamegraph4main17h80ee04565b2fc086E+0x929 (inferno/target/release/inferno-flamegraph) - 560b65a72c31 _ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h9efaa4abd3ddf1b3E+0x11 (inferno/target/release/inferno-flamegraph) - 560b65b95492 _ZN3std2rt19lang_start_internal28_$u7b$$u7b$closure$u7d$$u7d$17hdfc28107b5be47c9E+0x12 (inlined) - 560b65b95492 _ZN3std9panicking3try7do_call17h69790245ac2d03feE+0x12 (inferno/target/release/inferno-flamegraph) - 560b65ba38d9 __rust_maybe_catch_panic+0x19 (inferno/target/release/inferno-flamegraph) - 560b65b95e63 _ZN3std9panicking3try17h9c1cbc5599e1efbfE+0x203 (inlined) - 560b65b95e63 _ZN3std5panic12catch_unwind17h0562757d03ff60b3E+0x203 (inlined) - 560b65b95e63 _ZN3std2rt19lang_start_internal17h540c897fe52ba9c5E+0x203 (inferno/target/release/inferno-flamegraph) - 560b65a88e37 main+0x27 (inferno/target/release/inferno-flamegraph) - 7f0f22e3d222 __libc_start_main+0xf2 (/usr/lib/libc-2.28.so) - 560b65a6b15d _start+0x2d (inferno/target/release/inferno-flamegraph) diff --git a/tests/data/collapse-perf/results/demangled.txt b/tests/data/collapse-perf/results/demangled.txt deleted file mode 100644 index f157b58c..00000000 --- a/tests/data/collapse-perf/results/demangled.txt +++ /dev/null @@ -1,4 +0,0 @@ -inferno-flamegr;_dl_start_user;_dl_init;call_init.part.0;init_cacheinfo;handle_intel.constprop.1 1 -inferno-flamegr;_start;__libc_start_main;main;std::rt::lang_start_internal;std::panic::catch_unwind;std::panicking::try;__rust_maybe_catch_panic;std::panicking::try::do_call;std::rt::lang_start_internal::{{closure}};std::rt::lang_start::{{closure}};inferno_flamegraph::main;inferno::flamegraph::from_files;inferno::flamegraph::from_reader;inferno::flamegraph::from_readers;inferno::flamegraph::from_lines;inferno::flamegraph::merge::frames;inferno::flamegraph::merge::flow;>::peek;inferno::flamegraph::merge::flow;>::next; as core::str::pattern::Searcher<'a>>::next_match;core::slice::memchr::memchr 1 -inferno-flamegr;_start;__libc_start_main;main;std::rt::lang_start_internal;std::panic::catch_unwind;std::panicking::try;__rust_maybe_catch_panic;std::panicking::try::do_call;std::rt::lang_start_internal::{{closure}};std::rt::lang_start::{{closure}};inferno_flamegraph::main;inferno::flamegraph::from_files;inferno::flamegraph::from_reader;inferno::flamegraph::from_readers;inferno::flamegraph::from_lines;inferno::flamegraph::merge::frames;inferno::flamegraph::merge::flow;>::remove;>::map;>::remove::{{closure}};std::collections::hash::map::pop_internal;>>::take 1 -inferno-flamegr;_start;__libc_start_main;main;std::rt::lang_start_internal;std::panic::catch_unwind;std::panicking::try;__rust_maybe_catch_panic;std::panicking::try::do_call;std::rt::lang_start_internal::{{closure}};std::rt::lang_start::{{closure}};inferno_flamegraph::main;inferno::flamegraph::from_files;inferno::flamegraph::from_reader;inferno::flamegraph::from_readers;inferno::flamegraph::from_lines;inferno::flamegraph::merge::frames;inferno::flamegraph::merge::parse_nsamples;inferno::flamegraph::merge::rfind_samples;core::str::::rfind; as core::str::pattern::ReverseSearcher<'a>>::next_match_back;core::cmp::impls:: for &'a A>::eq;core::slice:: for [A]>::eq;<[A] as core::slice::SlicePartialEq>::equal;__memcmp_avx2_movbe 1