-
-
Notifications
You must be signed in to change notification settings - Fork 622
Issue reporting instructions
Tin Švagelj edited this page May 2, 2024
·
2 revisions
Some issues are easy to identify and fix, but in a lot of cases the fault in the code might be obscure and/or hard to replicate. This page lists some common ways to make issue reports more helpful.
- Make sure you have
valgrind
installed, as well as other needed build dependencies. - Clone conky with
git clone https://github.com/brndnmtthws/conky.git conky-perf-debugging
- Enter temporary build directory:
cd conky-perf-debugging
- Configure project:
cmake -S . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo --fresh
- Build:
cmake --build build > >(tee -a build.stdout.txt) 2> >(tee -a build.errlog.txt >&2)
- If the build fails, check the last 2/3 lines to see whether you're missing a build requirement.
- If you're not sure, attach
build.errlog.txt
file in the issue comment and others will help you out 🙂.
-
Profiling:
- Start conky
valgrind --tool=callgrind --dump-instr=yes --simulate-cache=yes --collect-jumps=yes build/src/conky
- Optionally, add any arguments you run conky with at the end of the command (e.g.
-c <one_of_your_config_files>
).
- Optionally, add any arguments you run conky with at the end of the command (e.g.
- Valgrind slows conky down because it's collecting a lot of data, it will take a while until conky draws anything but a blank window.
- Do whatever causes performace issues when you run conky normally.
- Wait a minute so the code gets executed.
- Press Ctrl+C in the terminal to stop conky.
- Wait for valgrind to print out "miss rate" lines and exit.
- Start conky
- Move generated report file to home directory:
mv callgrind.out.* ~/callgrind.out.txt
- Remove temporaray build directory:
cd .. && rm -r conky-perf-debugging
- Attach
callgrind.out.txt
file from home directory to the issue (Drag'n'drop).- If the file is too large, you can use some other file transfer service, or create a gist on GitHub.
- Uninstall
valgrind
if you want to.
- Home
- Installation
- Configurations
- Window Configuration
- Configs
- FAQ
- Lua
- Variables
- Compatibility
- Using Lua scripts
- How does a Lua script work
- Displaying stuff in conky
- Drawing lines
- Drawing rectangles, circles and arcs
- Making a bar meter and a circle meter
- Borders and if statements
- Alarm colors and complex if statements
- Functions
- Function parameters
- Table parameters
- For loops and cpu chart
- Clock and circular things
- Useful functions and code
- CLI commands timers and line editing
- Mouse events
- Contributing
- Issue Reporting