Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No full method names on RPI #81

Closed
heretique opened this issue Nov 18, 2017 · 4 comments
Closed

No full method names on RPI #81

heretique opened this issue Nov 18, 2017 · 4 comments
Assignees
Labels
core Issues related to easy_profiler_core feature implemented

Comments

@heretique
Copy link

Hi,
I'm using your great profiler to profile an application running on Raspberry Pi, everything works great except the method names are not fully qualified. I get only the method name without the class name as it is shown in your screenshots. Is there an option when configuring the profiler that I may have missed?
I've attached a screenshot showing my issue.

easy_profiler_capture

@cas4ey
Copy link
Collaborator

cas4ey commented Nov 18, 2017

Hi @heretique
Thanks for good words.
This issue doesn't refer to Raspberry Pi only, but for Unix systems.
Windows __FUNCTION__ contains class name and function name.
Unix version of this macro/var contains only function name.
You can replace it with __PRETTY_FUNCTION__, but it contains also types of function parameters and type of returned result.
Without modification of core API you can replace all EASY_FUNCTION() with EASY_BLOCK(__PRETTY_FUNCTION__) in your code.
I think we would add a possibility to chose verbosity of function names into release 2.0.
Thanks for idea! :)

Edit:
Well, I was not clear. Of course it is not OS issue, but a compiler specific.
My advice is still valid for GCC and Clang. (MSVC analogue is __FUNCSIG__ if someone interested)

@cas4ey
Copy link
Collaborator

cas4ey commented Nov 20, 2017

Updated previous comment

@heretique
Copy link
Author

Thanks for the info, keep up the good work ;)

@yse yse added the question label Nov 20, 2017
@cas4ey cas4ey added feature and removed question labels Nov 30, 2017
@cas4ey cas4ey added this to the Release v2.0.0 milestone Nov 30, 2017
@cas4ey cas4ey self-assigned this Nov 30, 2017
@cas4ey
Copy link
Collaborator

cas4ey commented Nov 30, 2017

Implemented and would be released in release v2.0

@cas4ey cas4ey closed this as completed Nov 30, 2017
cas4ey added a commit that referenced this issue Apr 27, 2018
* (#31) Added possibility to save user metrics (a.k.a. arbitrary values)
  * `#include <easy/arbitrary_value.h>`
  * Use `EASY_VALUE("Name", variable_ref);` // See more options at `easy/arbitrary_value.h`
* Added file converter (currently only .prof to .json is supported)
* (#75) There is no need anymore to wait all threads finish their opened frames when dumping blocks to file/stream
* (#81) Added CMake option to choose function names format
* Added CMake option `EASY_PROFILER_NO_GUI` to build without `profiler_gui`
* (#48) Minimized paddings in .prof file header
* Bug fixes
  * Fixed `EASY_ENABLE_ALIGNMENT` build error
  * (#75) Fixed UI freeze when hitting `Cancel` button while transmitting profiled blocks from profiled application to the UI
  * Mac: Added support for building with Apple LLVM clang version < 8.0
    * Add support for building with pre 2016 Apple LLVM clang
    * Automatically detect Apple clang that do not support thread_local
    * Clarify clang thread_local support code comment
  * (#72) Windows: VS2017 build fix
  * Unix: Context switch logger gets the processor cycle counter instead of time of a day
  * Other bug fixes

* (#31) Added arbitrary values viewer
* (#100) Added possibility to zoom in selected region
* (#91) Added possibility to take a snapshot. Now you can save selected area to separate file. Works both with blue selection (hold right mouse button + move) and black ruler (double-click + hold mouse button + move)
* Improved UI styles
* Blocks histogram (under Diagram scene) is now resizeable
* (#89) Added viewport info widget. See [Settings] -> [See viewport info]
* Bug fixes
  * Fixed hierarchy building for zero duration blocks - events and arbitrary values are always visible
  * (#89) Trying to fix high-dpi displays problem (maybe not fixed 😞 )
  * Other bug fixes
@cas4ey cas4ey added the core Issues related to easy_profiler_core label May 30, 2018
manimax3 added a commit to manimax3/easy_profiler that referenced this issue Jun 29, 2018
* yse#31 intermediate commit: added basic API for arbitrary values profiling. Still not working.

* yse#31 build fix

* yse#31 added arbitrary value id

* yse#75 Windows build

(cherry picked from commit ec720bf)

* #0 [Core] Added constexpr support macros and refactored extract_... functions

* yse#31 [Core] further work on arbitrary values

* #0 [Core] Rearranged include files

* #0 [Core] A lot of code refactoring

* #0 [Core][GUI] refactoring

* #0 [Core] refactoring

* #0 [Core] Windows build

* #0 Windows build

* #0 Build fix >:E

* yse#31 Single arbitrary values can be displayed in GUI as events + value converted to text

* #0 [GUI] Styling

* #0 [GUI] Styling

* #0 MSVC2013 build

* #0 [GUI] Warning fix: typo, forgotten return

* #0 [GUI] Styling

* yse#31 arbitrary value interface small refactoring

* #0 [GUI] Styling

* #0 [GUI] Styling

* #0 [GUI] Styling. Themes.

* #0 [GUI] Styling and optimization

* #0 [GUI] Windows styling and consterxpr fix for some Qt versions

* yse#81 [Core] Added an option to choose function names format

* yse#31 [GUI] Arbitrary values viewer progress

* #0 [GUI] Appearance progress

* yse#31 [GUI] Arbitrary values viewer progress

* #0 [GUI] Appearance

* #0 [GUI] HierarchyTree: Finally replaced colored rows with colored squares in front of block name. These squares can not be turned off from now.

* yse#31 [GUI] Arbitrary values viewer begin. Refactoring.

* yse#31 [Core] Fixed issue with storing arbitrary value while dumping. // [GUI] Further values viewer progress.

* Sample: build when SAMPLE_NETWORK_TEST is undefined

* minor refactoring

* yse#31 Basic arbitrary values viewer chart

* Windows build

* Older compiler build

* Older compiler build

* yse#75 [Core] No more waiting behavior when dumping blocks. Current solution resolves possible dead-lock but restricts any Events out of Frame bounds (You can see that the last event for LoadingResources thread in the profiler_sample is always absent).

* Install with include hierarhy

* yse#75 [Core] No waiting when dumping blocks. All events should now be stored properly.

* Release 2.0 further work. Intermediate commit.

* yse#31 [Gui] Big update for arbitrary values viewer. It is now viable and can be used to inspect user metrics. Currently arbitrary values viewer is built into blocks list widget.

* #0 [Gui] Saving dialog geometry; Added refresh button to arbitrary values widget; Fixed zoom-in algorithm

* yse#31 [Gui] Arbitrary values viewer bug fixes

* #0 [Gui] Large portion of refactoring; Replaced bunch of threads with thread pool; Small fixes for arbitrary values viewer

* #0 Updated copyright dates; [Gui] thread_pool.cpp MSVC build fix; [Core] Renamed getCurrentTime() to profiler::clock::now() + renamed profiler::currentTime() to profiler::now()

* #0 Simplified some lambdas

* yse#89 Trying to fix high-dpi displays problem

* yse#31 [Gui] Intermediate commit: implementing O(n) chart (kinda...) to be able to analyse algorithm complexity depending on certain arbitrary value

* yse#31 [Gui] Complexity charts for arbitrary value viewer

* yse#31 [Gui] Hide slider when displaying complexity chart

* yse#31 [Gui] Arbitrary values viewer: fixed performance problem, added icons for chart types

* yse#31 [Gui] Fixed mouse indicator for complexity chart; fixed buildTree(); added stub for future export values to .csv

* #0 [Gui] Fixed popup and double click on thread names on Diagram

* yse#31 [Gui] Fixed appox. line painting for complexity chart; Added export to .csv for regular chart type (timestamp;value);

* #0 [Gui] Paint background for current item for tree-widget

* Add math functions for calculation complexity

* yse#67 [Converter] Build fix after merging to release_2_0

* #0 [Gui] TreeView style fixes

* #0 [Gui] Thread pool fix: there was a possibility that not all tasks would be executed

* #0 [Gui] Added background jobs to thread pool and removed detached threads from code

* yse#31 [Gui] Implemented zoom for complexity chart mode; Implemented export to .csv for complexity mode

* #0 [Gui] Mac build fix

* #0 [Gui] Fixed typo

* #0 [Gui] Windows styling fix

* yse#31 [Core] Arbitrary values: replaced size_t with uint16_t; [Gui] Added support of arrays to arbitrary values tree

* #0 [Gui] Fixed hierarchy building for zero duration blocks - events and arbitrary values are always visible

* yse#31 [Gui] Double click on arbitrary value on the Diagram will open values viewer and will select appropriate arbitrary value

* yse#31 [UI] Open several arbitrary values viewer windows

* yse#31 [UI] Arbitrary values: fixed multi-window viewer

* yse#31 [UI] Highlight current selected block boundaries on arbitrary value chart

* yse#31 [UI] Fixed current block boundaries painting

* #0 [UI] Added viewport info widget. See [Settings] -> [See viewport info]

* yse#100 [UI] Implemented zoom-in button

* #0 [UI] Adjusted search boxes in Hierarchy widget and Blocks Descriptors Widget

* yse#31 [UI] Added arbitrary value tool-tip to Hierarchy tree widget (Try to move mouse cursor over Name column)

* yse#31 [UI] Added tooltip for arbitrary values to the Diagram

* yse#31 [UI] Amend. Forgotten files.

* #0 [UI] Diagram tool-tips fix: no tool-tips if mouse cursor is over another widget (opened settings for example)

* #0 [UI] Arbitrary value ToolTip styling fix; Viewport info fix;

* yse#48 [Core] Rearranged file header members order to minimize padding;
[Core] Changed version to 2.0.0;

* #0 Update README.md

* yse#67 [Converter] Rewrote json converter, arbitrary values would be added soon

* yse#91 [UI] Added snapshot tool stub; Working on saving blocks to file from UI

* yse#91 [UI] Snapshot feature further progress (intermediate commit)

* yse#91 [UI] Snapshot icon (actually called "crop")

* #0 [core] installing profiler_converter

* yse#91 [UI] .prof serializator (intermediate commit)

* yse#91 [Core][UI] functions profiler::writeTreesToFile(), profiler::writeTreesToStream() are now working. Snapshot feature is now working: select an area on Diagram (with right mouse button or double-click) and press Snapshot button to save it to separate file.

* #0 [Sample] Rollback - profiler_sample is standalone again (do not need to connect gui)

* #0 Update readme

* #0 Added new UI image to README.md

* Update README.md

* #0 [Core] refactoring

* #0 [UI] refactoring

* #0 [Core] Windows build

* #0 [Core] refactoring

* #0 [Core] findRange() fix for writeTreesToStream()

* #0 [Core] fixed typo

* yse#108 fix [Core] clang build for arbitrary values

* #0 [UI] Tooltip fix

* yse#89 [UI] High DPI displays fix + System scaling factor

* # [UI] Styles and refactoring

* #0 [UI] UI styles

* #0 [Misc] modified gitignore

* #0 [UI] Style

* #0 [UI] refactoring

* #0 [UI] Fixed zooming for charts (histogram, arbitrary value) with mouse wheel

* #0 [Misc] Update README.md

* #0 Updated image in README.md

* yse#106 [Core][UI] Added possibility to add user bookmarks with double-clicking on a timeline in the Diagram window.
yse#112 [UI] Fixed losing focus (and getting under MainWindow) for Blocks widget.
#0 [UI] UI styling, added custom window header and dialogs (could be turned off/on and adjusted position at [Settings -> Appearance] menu).

* yse#106 [UI] Rising a tooltip when passing cursor over a bookmark; #0 [UI] Minor fixes

* yse#106 [Core][UI] Fixed reading bookmarks with empty text; Fixed overriding and restoring mouse cursor shape when hovering bookmark at the Diagram widget;
#0 [UI] Waiting until saving file is finished when closing the UI.

* Update README.md

* Update README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core Issues related to easy_profiler_core feature implemented
Projects
None yet
Development

No branches or pull requests

3 participants