-
-
Notifications
You must be signed in to change notification settings - Fork 568
Debugging Olive
-
Install GDB
- Ubuntu/LinuxMint:
sudo apt install gdb
- Arch Linux:
sudo pacman -S gdb
- macOS: Install Homebrew and run
brew install gdb
on a terminal. - Windows: Install MSYS2 and run, on the MSYS shell,
pacman -S mingw-w64-x86_64-gdb
.
- Ubuntu/LinuxMint:
-
Launch your OS' main command line. These could be found by searching "terminal" on your OS' search bar
-
Type
gdb
in the command line to start GDB. You should get a message like this:
bash-5.0$ gdb
GNU gdb (GDB) Fedora 9.1-6.fc32
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
(gdb)
-
See the last line
(gdb)
? Typeexec-file ~/OlivePath
next to it and press enter- It should look like
(gdb) exec-file ~/Downloads/Olive-27a4dbc8-x86_64.AppImage
- NOTE: Leave your command line application open until you are done with debugging.
- It should look like
-
Crash Olive, go back to the command line with
(gdb)
and typebt
.- If you get the message
--Type <RET> for more, q to quit, c to continue without paging--
, just press c.
- If you get the message
-
Copy everything that came out of 'bt' into a text file or something.
NOTE: Back-traces look like this
(gdb) bt
#0 0x00000000005886ff in olive::Timecode::timestamp_to_timecode (
timestamp=@0x7fffffffcda0: 0, timebase=...,
display=@0x7fffffffcd9c: olive::Timecode::kTimecodeDropFrame,
show_plus_if_positive=show_plus_if_positive@entry=false)
at /home/travis/build/olive-editor/olive/app/common/timecodefunctions.cpp:112
#1 0x00000000006c300e in olive::TimeSlider::ValueToString (this=0x174c7e0,
v=...)
at /home/travis/build/olive-editor/olive/app/widget/slider/timeslider.cpp:53
#2 0x00000000006c076b in olive::SliderBase::UpdateLabel (this=0x174c7e0, v=...)
at /home/travis/build/olive-editor/olive/app/widget/slider/sliderbase.cpp:224
What's in the Backtrace?
Each number is an event of a function that took place within Olive's code.
For example: event #2 means that line 224 in sliderbase.cpp
was used at that moment
🚧 This wiki is work in progress and information may be outdated!
Our Discord server is Olive Video Editor.
Thank you for your interest in Olive and helping it reach more people.