Mismatched Call Stacks between Bottom-up tree and Call Stack pane

When a user adopts stack-sampling collector analysis such as Hotspots, Concurrency or Locks Waits, Call Stack info will be displayed in Bottom-up report. (OS timer only)

Call Stack tree lists all call sequences (stacks) which called hot functions. Call Stacks from different threads are aggregated together for view type "Function - Call Stack", or Call Stacks can be displayed respectively for different thread for view type "Thread - Function - Call Stack".

Here is the Hotspot result after running a single thread application. Hot function foo_data_collected() has only one Stack wmain() in Bottom-up tree, but Call Stack pane indicates there are two Stacks.


First stack is wmain() from "test_itt_api.cpp:32", let's see what second stack is?


Second stack is wmain() from "test_itt_api.cpp:24". That means wmain() calls hot function foo_data_collected() from different source lines in same function. The bottom-up tree shown in the Bottom-up pane aggregates these stacks in one line. But the Call Stack pane shows each as a separate stack

For more complete information about compiler optimizations, see our Optimization Notice.