Skip to content

Commit

Permalink
Merge pull request #319 from Orca-bit/fix_period
Browse files Browse the repository at this point in the history
take period into account when collapsing stacks
  • Loading branch information
jonhoo authored Jul 14, 2024
2 parents edaba3b + c58d49d commit 4041b08
Show file tree
Hide file tree
Showing 15 changed files with 324 additions and 307 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changed

- More reliably detect Java and avoid double-annotating. [#319](https://github.com/jonhoo/inferno/pull/319)
- Take period into account when collapsing stacks. [#319](https://github.com/jonhoo/inferno/pull/319)
- Updated dashmap to v6

### Removed

## [0.11.19] - 2023-11-25
Expand Down
2 changes: 1 addition & 1 deletion flamegraph
Submodule flamegraph updated 34 files
+2 −1 README.md
+74 −15 flamegraph.pl
+9 −3 stackcollapse-bpftrace.pl
+61 −0 stackcollapse-faulthandler.pl
+145 −0 stackcollapse-ibmjava.pl
+15 −7 stackcollapse-instruments.pl
+21 −16 stackcollapse-perf.pl
+1 −1 stackcollapse-pmc.pl
+103 −0 stackcollapse-vtune-mc.pl
+3 −3 stackcollapse-xdebug.php
+10 −10 test/results/perf-dd-stacks-01-collapsed-addrs.txt
+10 −10 test/results/perf-dd-stacks-01-collapsed-all.txt
+10 −10 test/results/perf-dd-stacks-01-collapsed-jit.txt
+10 −10 test/results/perf-dd-stacks-01-collapsed-kernel.txt
+10 −10 test/results/perf-dd-stacks-01-collapsed-pid.txt
+10 −10 test/results/perf-dd-stacks-01-collapsed-tid.txt
+7 −7 test/results/perf-java-faults-01-collapsed-addrs.txt
+7 −7 test/results/perf-java-faults-01-collapsed-all.txt
+7 −7 test/results/perf-java-faults-01-collapsed-jit.txt
+7 −7 test/results/perf-java-faults-01-collapsed-kernel.txt
+9 −9 test/results/perf-java-faults-01-collapsed-pid.txt
+9 −9 test/results/perf-java-faults-01-collapsed-tid.txt
+26 −26 test/results/perf-java-stacks-01-collapsed-pid.txt
+26 −26 test/results/perf-java-stacks-01-collapsed-tid.txt
+1 −1 test/results/perf-java-stacks-02-collapsed-pid.txt
+1 −1 test/results/perf-java-stacks-02-collapsed-tid.txt
+45 −45 test/results/perf-rust-Yamakaky-dcpu-collapsed-addrs.txt
+45 −45 test/results/perf-rust-Yamakaky-dcpu-collapsed-all.txt
+45 −45 test/results/perf-rust-Yamakaky-dcpu-collapsed-jit.txt
+45 −45 test/results/perf-rust-Yamakaky-dcpu-collapsed-kernel.txt
+45 −45 test/results/perf-rust-Yamakaky-dcpu-collapsed-pid.txt
+45 −45 test/results/perf-rust-Yamakaky-dcpu-collapsed-tid.txt
+191 −191 test/results/perf-vertx-stacks-01-collapsed-pid.txt
+191 −191 test/results/perf-vertx-stacks-01-collapsed-tid.txt
27 changes: 20 additions & 7 deletions src/collapse/perf.rs
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,9 @@ pub struct Folder {
/// Function entries on the stack in this entry thus far.
stack: VecDeque<String>,

/// period of current event
period: Option<usize>,

// Options...
opt: Options,
}
Expand All @@ -148,6 +151,7 @@ impl From<Options> for Folder {
pname: String::default(),
stack_filter: StackFilter::Keep,
stack: VecDeque::default(),
period: None,
opt,
}
}
Expand Down Expand Up @@ -262,6 +266,7 @@ impl CollapsePrivate for Folder {
pname: String::new(),
stack_filter: StackFilter::Keep,
stack: VecDeque::default(),
period: None,
opt: self.opt.clone(),
}
}
Expand Down Expand Up @@ -375,9 +380,12 @@ impl Folder {

if let Some((comm, pid, tid, end)) = Self::event_line_parts(line) {
let mut by_colons = line[end..].splitn(3, ':').skip(1);
let event = by_colons
.next()
.and_then(|has_event| has_event.rsplit(' ').next());
let event = by_colons.next().and_then(|period_and_event| {
let mut it = period_and_event.rsplit(' ');
let event_name = it.next();
self.period = it.next().and_then(|s| s.parse::<usize>().ok());
event_name
});
if let Some(event) = event {
if let Some(ref event_filter) = self.event_filter {
if event != event_filter {
Expand Down Expand Up @@ -516,7 +524,7 @@ impl Folder {
func = tidy_generic(func);
}

if TIDY_JAVA && self.pname == "java" {
if TIDY_JAVA && self.pname.starts_with("java") {
func = tidy_java(func);
}

Expand All @@ -533,14 +541,18 @@ impl Folder {
//
// 7f722d142778 Ljava/io/PrintStream;::print (/tmp/perf-19982.map)
if !self.cache_line.is_empty() {
func.push_str("_[i]"); // inlined
if !func.contains("_[i]") {
func.push_str("_[i]"); // inlined
}
} else if self.opt.annotate_kernel && is_kernel(module) {
func.push_str("_[k]"); // kernel
} else if self.opt.annotate_jit
&& ((module.starts_with("/tmp/perf-") && module.ends_with(".map"))
|| (module.contains("/jitted-") && module.ends_with(".so")))
{
func.push_str("_[j]"); // jitted
if !func.contains("_[j]") {
func.push_str("_[j]"); // jitted
}
}

Check warning on line 556 in src/collapse/perf.rs

View workflow job for this annotation

GitHub Actions / clippy

this `if` statement can be collapsed

warning: this `if` statement can be collapsed --> src/collapse/perf.rs:549:24 | 549 | } else if self.opt.annotate_jit | ________________________^ 550 | | && ((module.starts_with("/tmp/perf-") && module.ends_with(".map")) 551 | | || (module.contains("/jitted-") && module.ends_with(".so"))) 552 | | { ... | 555 | | } 556 | | } | |_________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if = note: `#[warn(clippy::collapsible_if)]` on by default help: collapse nested if block | 549 ~ } else if self.opt.annotate_jit && ((module.starts_with("/tmp/perf-") && module.ends_with(".map")) 550 + || (module.contains("/jitted-") && module.ends_with(".so"))) && !func.contains("_[j]") { 551 + func.push_str("_[j]"); // jitted 552 + } |

self.cache_line.push(func);
Expand Down Expand Up @@ -586,13 +598,14 @@ impl Folder {
stack_str.pop();

// count it!
occurrences.insert_or_add(stack_str, 1);
occurrences.insert_or_add(stack_str, self.period.unwrap_or(1));
}

// reset for the next event
self.in_event = false;
self.stack_filter = StackFilter::Keep;
self.stack.clear();
self.period = None;
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
perf_stacks;[unknown];std::ostream::sentry::sentry 1
perf_stacks;_dl_start;[[kernel.kallsyms]] 1
perf_stacks;_start;[[kernel.kallsyms]] 6
perf_stacks;_start;__libc_start_main;__libc_csu_init;_GLOBAL__sub_I_main;__static_initialization_and_destruction_0;std::ios_base::Init::Init;std::locale::locale;[libstdc++.so.6.0.25];std::locale::_Impl::_Impl;std::__timepunct<wchar_t>::__timepunct;std::__timepunct<wchar_t>::_M_initialize_timepunct 1
perf_stacks;_start;__libc_start_main;main;std::endl<char, std::char_traits<char> >;std::ostream::put;_IO_new_file_overflow;_IO_new_do_write;new_do_write;_IO_new_file_write;__GI___libc_write;[[kernel.kallsyms]] 34
perf_stacks;_start;__libc_start_main;main;std::function<int (int, int)>::operator;std::_Function_handler<int (int, int), main::{lambda(int, int)#1}>::_M_invoke 1
perf_stacks;_start;__libc_start_main;main;std::ostream::flush 1
perf_stacks;_start;_dl_start;_dl_start_final;_dl_sysdep_start;dl_main;_dl_map_object_deps;_dl_catch_exception;openaux;_dl_map_object;_dl_map_object_from_fd;_dl_map_segments;__mmap64;[[kernel.kallsyms]] 1
perf_stacks;[unknown];std::ostream::sentry::sentry 4614996
perf_stacks;_dl_start;[[kernel.kallsyms]] 438507
perf_stacks;_start;[[kernel.kallsyms]] 29005
perf_stacks;_start;__libc_start_main;__libc_csu_init;_GLOBAL__sub_I_main;__static_initialization_and_destruction_0;std::ios_base::Init::Init;std::locale::locale;[libstdc++.so.6.0.25];std::locale::_Impl::_Impl;std::__timepunct<wchar_t>::__timepunct;std::__timepunct<wchar_t>::_M_initialize_timepunct 3946818
perf_stacks;_start;__libc_start_main;main;std::endl<char, std::char_traits<char> >;std::ostream::put;_IO_new_file_overflow;_IO_new_do_write;new_do_write;_IO_new_file_write;__GI___libc_write;[[kernel.kallsyms]] 62360120
perf_stacks;_start;__libc_start_main;main;std::function<int (int, int)>::operator;std::_Function_handler<int (int, int), main::{lambda(int, int)#1}>::_M_invoke 3306084
perf_stacks;_start;__libc_start_main;main;std::ostream::flush 2947000
perf_stacks;_start;_dl_start;_dl_start_final;_dl_sysdep_start;dl_main;_dl_map_object_deps;_dl_catch_exception;openaux;_dl_map_object;_dl_map_object_from_fd;_dl_map_segments;__mmap64;[[kernel.kallsyms]] 2925420
10 changes: 5 additions & 5 deletions tests/data/collapse-perf/results/go-stacks-collapsed.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
go;[unknown];[unknown];runtime.main;main.main;cmd/go/internal/run.runRun;cmd/go/internal/load.PackagesAndErrors;cmd/go/internal/load.loadPackage;cmd/go/internal/load.LoadImport;cmd/go/internal/load.(*Package).load;cmd/go/internal/load.LoadImport;cmd/go/internal/load.(*Package).load;cmd/go/internal/load.LoadImport;cmd/go/internal/load.(*Package).load;cmd/go/internal/load.LoadImport;cmd/go/internal/load.(*Package).load;cmd/go/internal/load.LoadImport;go/build.(*Context).Import;go/build.(*Context).matchFile;go/build.readImports;go/build.(*importReader).readKeyword;go/build.(*importReader).peekByte;go/build.(*importReader).readByte 1
go;[unknown];[unknown];runtime.main;main.main;cmd/go/internal/run.runRun;cmd/go/internal/load.PackagesAndErrors;cmd/go/internal/load.loadPackage;cmd/go/internal/load.LoadImport;cmd/go/internal/load.(*Package).load;cmd/go/internal/load.LoadImport;cmd/go/internal/load.(*Package).load;cmd/go/internal/load.LoadImport;cmd/go/internal/load.(*Package).load;cmd/go/internal/load.LoadImport;cmd/go/internal/load.(*Package).load;cmd/go/internal/load.LoadImport;go/build.(*Context).Import;go/parser.ParseFile;go/parser.(*parser).parseFile;go/parser.(*parser).expectSemi;go/parser.(*parser).next;go/parser.(*parser).consumeComment 1
go;[unknown];x_cgo_notify_runtime_init_done;runtime.main;main.init;cmd/go/internal/base.init;cmd/go/internal/cfg.init;go/build.init;go/doc.init;text/template.init;text/template.init.ializers;text/template.createValueFuncs;text/template.addValueFuncs;runtime.mapassign_faststr 1
go;[unknown];x_cgo_notify_runtime_init_done;runtime.main;main.init;cmd/go/internal/bug.init;cmd/go/internal/envcmd.init;cmd/go/internal/modload.init;cmd/go/internal/modfetch.init;cmd/go/internal/get.init;cmd/go/internal/work.init;cmd/go/internal/work.init.ializers;regexp.MustCompile;regexp.compile;regexp/syntax.Compile;runtime.growslice 1
go;[unknown];x_cgo_notify_runtime_init_done;runtime.main;main.init;cmd/go/internal/bug.init;cmd/go/internal/envcmd.init;cmd/go/internal/modload.init;cmd/go/internal/modfetch.init;cmd/go/internal/get.init;cmd/go/internal/work.init;cmd/go/internal/work.init.ializers;regexp.MustCompile;regexp.compile;regexp/syntax.Parse;regexp/syntax.(*parser).literal;regexp/syntax.(*parser).push;regexp/syntax.(*parser).maybeConcat;runtime.growslice 1
go;[unknown];[unknown];runtime.main;main.main;cmd/go/internal/run.runRun;cmd/go/internal/load.PackagesAndErrors;cmd/go/internal/load.loadPackage;cmd/go/internal/load.LoadImport;cmd/go/internal/load.(*Package).load;cmd/go/internal/load.LoadImport;cmd/go/internal/load.(*Package).load;cmd/go/internal/load.LoadImport;cmd/go/internal/load.(*Package).load;cmd/go/internal/load.LoadImport;cmd/go/internal/load.(*Package).load;cmd/go/internal/load.LoadImport;go/build.(*Context).Import;go/build.(*Context).matchFile;go/build.readImports;go/build.(*importReader).readKeyword;go/build.(*importReader).peekByte;go/build.(*importReader).readByte 250000
go;[unknown];[unknown];runtime.main;main.main;cmd/go/internal/run.runRun;cmd/go/internal/load.PackagesAndErrors;cmd/go/internal/load.loadPackage;cmd/go/internal/load.LoadImport;cmd/go/internal/load.(*Package).load;cmd/go/internal/load.LoadImport;cmd/go/internal/load.(*Package).load;cmd/go/internal/load.LoadImport;cmd/go/internal/load.(*Package).load;cmd/go/internal/load.LoadImport;cmd/go/internal/load.(*Package).load;cmd/go/internal/load.LoadImport;go/build.(*Context).Import;go/parser.ParseFile;go/parser.(*parser).parseFile;go/parser.(*parser).expectSemi;go/parser.(*parser).next;go/parser.(*parser).consumeComment 250000
go;[unknown];x_cgo_notify_runtime_init_done;runtime.main;main.init;cmd/go/internal/base.init;cmd/go/internal/cfg.init;go/build.init;go/doc.init;text/template.init;text/template.init.ializers;text/template.createValueFuncs;text/template.addValueFuncs;runtime.mapassign_faststr 250000
go;[unknown];x_cgo_notify_runtime_init_done;runtime.main;main.init;cmd/go/internal/bug.init;cmd/go/internal/envcmd.init;cmd/go/internal/modload.init;cmd/go/internal/modfetch.init;cmd/go/internal/get.init;cmd/go/internal/work.init;cmd/go/internal/work.init.ializers;regexp.MustCompile;regexp.compile;regexp/syntax.Compile;runtime.growslice 250000
go;[unknown];x_cgo_notify_runtime_init_done;runtime.main;main.init;cmd/go/internal/bug.init;cmd/go/internal/envcmd.init;cmd/go/internal/modload.init;cmd/go/internal/modfetch.init;cmd/go/internal/get.init;cmd/go/internal/work.init;cmd/go/internal/work.init.ializers;regexp.MustCompile;regexp.compile;regexp/syntax.Parse;regexp/syntax.(*parser).literal;regexp/syntax.(*parser).push;regexp/syntax.(*parser).maybeConcat;runtime.growslice 250000
26 changes: 13 additions & 13 deletions tests/data/collapse-perf/results/java-inline-collapsed.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
java;[unknown];__GI___libc_write 6
java;[unknown];__GI___libc_write;entry_SYSCALL_64_after_hwframe;do_syscall_64 2
java;[unknown];__GI___libc_write;entry_SYSCALL_64_after_hwframe;do_syscall_64;ksys_write;__fdget_pos;__fget_light 3
java;[unknown];__GI___libc_write;entry_SYSCALL_64_after_hwframe;do_syscall_64;ksys_write;fput 1
java;[unknown];__GI___libc_write;entry_SYSCALL_64_after_hwframe;do_syscall_64;ksys_write;vfs_write;__vfs_write;tty_write;n_tty_write 1
java;[unknown];__GI___libc_write;entry_SYSCALL_64_after_hwframe;do_syscall_64;ksys_write;vfs_write;__vfs_write;tty_write;n_tty_write;_raw_spin_unlock_irqrestore 1
java;[unknown];__GI___libc_write;entry_SYSCALL_64_after_hwframe;do_syscall_64;ksys_write;vfs_write;__vfs_write;tty_write;n_tty_write;pty_write;_raw_spin_unlock_irqrestore 2
java;[unknown];__GI___libc_write;entry_SYSCALL_64_after_hwframe;do_syscall_64;ksys_write;vfs_write;__vfs_write;tty_write;tty_write_unlock 1
java;start_thread;[libjli.so];[libjvm.so];[libjvm.so];[libjvm.so];call_stub;Interpreter;Interpreter;LCounter:::countTo;java/io/PrintStream:::println;java/io/PrintStream:::newLine_[i];java/io/OutputStreamWriter:::flushBuffer_[i];sun/nio/cs/StreamEncoder:::flushBuffer;sun/nio/cs/StreamEncoder:::implFlushBuffer_[i];sun/nio/cs/StreamEncoder:::writeBytes_[i];java/io/PrintStream:::write_[i];java/io/BufferedOutputStream:::flush_[i];java/io/BufferedOutputStream:::flushBuffer_[i];java/io/FileOutputStream:::write_[i] 1
java;start_thread;[libjli.so];[libjvm.so];[libjvm.so];[libjvm.so];call_stub;Interpreter;Interpreter;LCounter:::countTo;java/io/PrintStream:::println;java/io/PrintStream:::newLine_[i];java/io/OutputStreamWriter:::flushBuffer_[i];sun/nio/cs/StreamEncoder:::flushBuffer;sun/nio/cs/StreamEncoder:::implFlushBuffer_[i];sun/nio/cs/StreamEncoder:::writeBytes_[i];java/io/PrintStream:::write_[i];java/io/BufferedOutputStream:::flush_[i];java/io/BufferedOutputStream:::flushBuffer_[i];java/io/FileOutputStream:::write_[i];java/io/FileOutputStream:::writeBytes;Java_java_io_FileOutputStream_writeBytes;[libjava.so];[libjvm.so];[libjvm.so] 1
java;start_thread;[libjli.so];[libjvm.so];[libjvm.so];[libjvm.so];call_stub;Interpreter;Interpreter;LCounter:::countTo;java/io/PrintStream:::println;java/io/PrintStream:::print_[i];java/io/PrintStream:::write_[i];java/io/BufferedWriter:::flushBuffer;java/io/OutputStreamWriter:::write_[i];sun/nio/cs/StreamEncoder:::write_[i];sun/nio/cs/StreamEncoder:::implWrite_[i];sun/nio/cs/StreamEncoder:::implWrite_[i];java/nio/charset/CharsetEncoder:::encode_[i];sun/nio/cs/UTF_8$Encoder:::encodeLoop_[i] 1
java;start_thread;[libjli.so];[libjvm.so];[libjvm.so];[libjvm.so];call_stub;Interpreter;Interpreter;LCounter:::countTo;java/io/PrintStream:::println;java/io/PrintStream:::print_[i];java/io/PrintStream:::write_[i];java/io/OutputStreamWriter:::flushBuffer_[i];sun/nio/cs/StreamEncoder:::flushBuffer;sun/nio/cs/StreamEncoder:::implFlushBuffer_[i];sun/nio/cs/StreamEncoder:::writeBytes_[i];java/io/PrintStream:::write_[i];java/io/BufferedOutputStream:::flush_[i] 1
java;start_thread;[libjli.so];[libjvm.so];[libjvm.so];[libjvm.so];call_stub;Interpreter;Interpreter;LCounter:::countTo;java/io/PrintStream:::println;java/io/PrintStream:::print_[i];java/io/PrintStream:::write_[i];java/io/OutputStreamWriter:::flushBuffer_[i];sun/nio/cs/StreamEncoder:::flushBuffer;sun/nio/cs/StreamEncoder:::implFlushBuffer_[i];sun/nio/cs/StreamEncoder:::writeBytes_[i];java/io/PrintStream:::write_[i];java/io/BufferedOutputStream:::flush_[i];java/io/BufferedOutputStream:::flushBuffer_[i];java/io/FileOutputStream:::write_[i] 1
java;[unknown];__GI___libc_write 60606060
java;[unknown];__GI___libc_write;entry_SYSCALL_64_after_hwframe;do_syscall_64 20202020
java;[unknown];__GI___libc_write;entry_SYSCALL_64_after_hwframe;do_syscall_64;ksys_write;__fdget_pos;__fget_light 30303030
java;[unknown];__GI___libc_write;entry_SYSCALL_64_after_hwframe;do_syscall_64;ksys_write;fput 10101010
java;[unknown];__GI___libc_write;entry_SYSCALL_64_after_hwframe;do_syscall_64;ksys_write;vfs_write;__vfs_write;tty_write;n_tty_write 10101010
java;[unknown];__GI___libc_write;entry_SYSCALL_64_after_hwframe;do_syscall_64;ksys_write;vfs_write;__vfs_write;tty_write;n_tty_write;_raw_spin_unlock_irqrestore 10101010
java;[unknown];__GI___libc_write;entry_SYSCALL_64_after_hwframe;do_syscall_64;ksys_write;vfs_write;__vfs_write;tty_write;n_tty_write;pty_write;_raw_spin_unlock_irqrestore 20202020
java;[unknown];__GI___libc_write;entry_SYSCALL_64_after_hwframe;do_syscall_64;ksys_write;vfs_write;__vfs_write;tty_write;tty_write_unlock 10101010
java;start_thread;[libjli.so];[libjvm.so];[libjvm.so];[libjvm.so];call_stub;Interpreter;Interpreter;LCounter:::countTo;java/io/PrintStream:::println;java/io/PrintStream:::newLine_[i];java/io/OutputStreamWriter:::flushBuffer_[i];sun/nio/cs/StreamEncoder:::flushBuffer;sun/nio/cs/StreamEncoder:::implFlushBuffer_[i];sun/nio/cs/StreamEncoder:::writeBytes_[i];java/io/PrintStream:::write_[i];java/io/BufferedOutputStream:::flush_[i];java/io/BufferedOutputStream:::flushBuffer_[i];java/io/FileOutputStream:::write_[i] 10101010
java;start_thread;[libjli.so];[libjvm.so];[libjvm.so];[libjvm.so];call_stub;Interpreter;Interpreter;LCounter:::countTo;java/io/PrintStream:::println;java/io/PrintStream:::newLine_[i];java/io/OutputStreamWriter:::flushBuffer_[i];sun/nio/cs/StreamEncoder:::flushBuffer;sun/nio/cs/StreamEncoder:::implFlushBuffer_[i];sun/nio/cs/StreamEncoder:::writeBytes_[i];java/io/PrintStream:::write_[i];java/io/BufferedOutputStream:::flush_[i];java/io/BufferedOutputStream:::flushBuffer_[i];java/io/FileOutputStream:::write_[i];java/io/FileOutputStream:::writeBytes;Java_java_io_FileOutputStream_writeBytes;[libjava.so];[libjvm.so];[libjvm.so] 10101010
java;start_thread;[libjli.so];[libjvm.so];[libjvm.so];[libjvm.so];call_stub;Interpreter;Interpreter;LCounter:::countTo;java/io/PrintStream:::println;java/io/PrintStream:::print_[i];java/io/PrintStream:::write_[i];java/io/BufferedWriter:::flushBuffer;java/io/OutputStreamWriter:::write_[i];sun/nio/cs/StreamEncoder:::write_[i];sun/nio/cs/StreamEncoder:::implWrite_[i];sun/nio/cs/StreamEncoder:::implWrite_[i];java/nio/charset/CharsetEncoder:::encode_[i];sun/nio/cs/UTF_8$Encoder:::encodeLoop_[i] 10101010
java;start_thread;[libjli.so];[libjvm.so];[libjvm.so];[libjvm.so];call_stub;Interpreter;Interpreter;LCounter:::countTo;java/io/PrintStream:::println;java/io/PrintStream:::print_[i];java/io/PrintStream:::write_[i];java/io/OutputStreamWriter:::flushBuffer_[i];sun/nio/cs/StreamEncoder:::flushBuffer;sun/nio/cs/StreamEncoder:::implFlushBuffer_[i];sun/nio/cs/StreamEncoder:::writeBytes_[i];java/io/PrintStream:::write_[i];java/io/BufferedOutputStream:::flush_[i] 10101010
java;start_thread;[libjli.so];[libjvm.so];[libjvm.so];[libjvm.so];call_stub;Interpreter;Interpreter;LCounter:::countTo;java/io/PrintStream:::println;java/io/PrintStream:::print_[i];java/io/PrintStream:::write_[i];java/io/OutputStreamWriter:::flushBuffer_[i];sun/nio/cs/StreamEncoder:::flushBuffer;sun/nio/cs/StreamEncoder:::implFlushBuffer_[i];sun/nio/cs/StreamEncoder:::writeBytes_[i];java/io/PrintStream:::write_[i];java/io/BufferedOutputStream:::flush_[i];java/io/BufferedOutputStream:::flushBuffer_[i];java/io/FileOutputStream:::write_[i] 10101010
Loading

0 comments on commit 4041b08

Please sign in to comment.