Open Zylatis opened 3 years ago
Hello! Thanks for feedback. Let's debug together!
Try add EASY_OPTION_LOG=1
when cmake generating process:
cmake -DEASY_OPTION_LOG=1 ..
This option enable some diagnostics logs. May be program cannot open file for writing. I tried to write a file in place where I haven't permissionw (for example /
). I get following logs (in stdout
and stderr
):
EasyProfiler INFO: Enabled profiling
EasyProfiler INFO: dumpBlocksToFile("/test_profile.prof")...
EasyProfiler ERROR: Can not open "/test_profile.prof" for writing
Hey, thanks for the speedy reply!
I am doing the following
cmake -DCMAKE_BUILD_TYPE="Release" -DEASY_OPTION_LOG=1 ..
--
-- EASY_PROFILER.Core version = 2.1.0
--
-- -------- EASY_PROFILER OPTIONS: --------
-- Use rtdsc as a timer
-- Default listening port = 28077
-- Auto-start listening = OFF
-- Profile self = OFF
-- Profile self blocks initial status = OFF
-- Truncate block dynamic names = OFF (may cause crash if using dynamic block names of length >2816 symbols)
-- Check maximum EASY_VALUE data size = OFF (may cause crash if using EASY_VALUE arrays of total data size >2816 bytes)
-- Implicit thread registration = ON
-- Log messages = 1
-- Function names pretty-print = OFF
-- Use EasyProfiler colors palette = ON
-- Shared library: ON
-- ------ END EASY_PROFILER OPTIONS -------
--
-- Using Qt v5.5.1
-- Configuring done
-- Generating done
-- Build files have been written to: /home/XXX/easy_profiler-develop/build
I then rerun 'make' and compile the test with
g++ -o test test.cpp -I /home/XXX/easy_profiler-develop/easy_profiler_core/include --std=c++14
which compiles fine. I then run it, it outputs nothing but the result of the calculation, and no file :/ No diagnostic or anything :sadcat:
I also tried with just
cmake -DEASY_OPTION_LOG=1 ..
instead of the release option, reran make etc etc, same result. I feel like i'm missing something dumb and obvious...
I understand.
Try add BUILD_WITH_EASY_PROFILER
definition for g++
. See docs. You also need an info for linker - path with builded easy_profiler
. If you are using CMake - the definition will be added by cmake in your project.
May be necessity of the definition is ugly design but...I don't know, it was from firsts steps and we kept it for backward compatibility.
It happens when you do not have BUILD_WITH_EASY_PROFILER
macro defined. No errors or warnings and no output as well.
I think this issue should be closed.
It happens when you do not have
BUILD_WITH_EASY_PROFILER
macro defined. No errors or warnings and no output as well. I think this issue should be closed.
I encounter the same problem too, the wiki don't really discuss this problem in details.
I find in easy_profiler_core/CMakeLists.txt that -DBUILD_WITH_EASY_PROFILER=1 is already defined, so why would I need to add an argument again when invoking cmake?
It depends on your usage of CMake and it's variable scope resolution. If you want to set a variable from child project you need to define it with PARENT_SCOPE option, like this: set(BUILD_WITH_EASY_PROFILER "1" PARENT_SCOPE)
. Otherwise you need to define it in your parent project.
I had the same problem on my Windows. Finally I've realized that I just needed to add full path to my libeasy_profiler.dll to the Path system variable. My exe just couldn't find the needed dll and crashed at startup. So it seems to me that you need to somehow give your executable access to all needed shared libs.
Hi,
I have what is probably a dumb question: the output file isn't being produced when dumping to disk.
I'm on ubuntu 16.04 and the project builds fine (i can open the GUI editor and all that) and I can compile a simple code (below) fine and it runs but the .prof file isn't produced anywhere. I've tried giving absolute paths and searching my whole drive but it simply doesn't exist - any ideas?