forked from mixxxdj/mixxx
-
Notifications
You must be signed in to change notification settings - Fork 0
Creating Backtraces
Sean M. Pappalardo edited this page Dec 30, 2015
·
44 revisions
Found a crash? Generate a back-trace so we can see exactly where Mixxx crashed.
- Download GDB for
Windows (get
the official release version) and save it to the root of your C:
drive. (
C:\
) - Download debug symbols of Mixxx (TODO: not yet provided)
- Open a Windows prompt:
- Win 7: Open a command prompt by clicking Start->Run... then type
cmd
in the box and press Enter. - Win 10: Type
cmd
to the task bar search box and press Enter
- Change to the the directory where Mixxx is installed: type the
following then press Enter:
cd %PROGRAMFILES%\Mixxx
- Run GDB: type the following command and press Enter:
C:\gdb mixxx.exe
- Load optional debug symbols *.pdb installed on your system.
add-symbol-file libshout.pdb
- Continue with step 2. in the section below
- From a command prompt/terminal, type "gdb mixxx" and press Enter.
-
OSX users need to specify the path for the executable file, e.g
gdb /Applications/Mixxx.app/Contents/MacOS/mixxx
- Use the gdb "--args" option to pass arguments, e.g.
gdb --args ./mixxx --controllerDebug --developer --resourcePath res
- When the gdb prompt appears, type
set height 0
and press enter to disable screen paging. - Type
run
and press enter. - Make Mixxx crash. When it does, type the following into the gdb
prompt:
thread apply all bt
. (There may be multiple pages of output. Make sure to hit <Enter> enough times to see it all.) - To close the Mixxx window and end gdb, type the following into the
gdb prompt:
quit
- Copying the gdb info:
- Windows users can copy the terminal buffer by clicking the window's icon in the top left corner and then selecting Edit-->Select All. Everything selected will be inverted (so black becomes white, white becomes black, etc) and hitting Enter will copy the selection to the clipboard and deselect everything. Paste the clipboard buffer into a notepad document and attach that to a bug report. Note: a Windows console will not update while any part of it is selected.
- Linux/OSX users should be able to select terminal output by using the mouse, and then doing a right click and selecting Copy.
- Report a bug using the Mixxx bug reporting system on Launchpad. Bugs filed here are tracked by developers and will not fall through the cracks as easily as using the IRC channel or mixxx-devel. (If another bug matches your issue, please make a comment on that one instead of filing a new one.) Make sure to attach your back-trace (click "Add attachment or patch.") Do not just paste it in the comment.
- If you do not want to use Launchpad, post the results in the forum, email them to mixxx-devel, or pastebin them and drop the link on IRC. We'll then try to figure out where the crash is. Do not assume a developer will hear you in IRC, using a static system (bug tracker, e-mail, forum) is much preferred. The IRC channel is great for technical support though.
Note: To get a backtrace for a thread freeze you can do the same thing as above, but to get the gdb prompt, you have to press CTRL+Z in the terminal window to suspend Mixxx.
Apple switched to clang/lldb. Xcode 5 does not include the GNU compiler or tools.
- Open a terminal window.
- Specify the path for the executable file
lldb /Applications/Mixxx.app/Contents/MacOS/mixxx
- lldb output should read
Current executable set to '/Applications/Mixxx.app/Contents/MacOS/mixxx' (x86_64)
- If want to pass flag-like arguments to Mixxx, you have to terminate
the actual flags with "--"
lldb -- ./mixxx --controllerDebug --developer --resourcePath res
- At the lldb prompt, type
run
and press enter. - Make Mixxx crash.
- When it does, type the following into the lldb prompt:
thread backtrace all
- To close the Mixxx window and end lldb, type the following at the
lldb prompt:
quit
- Copy the lldb output. Select the terminal output by using the mouse, and then doing a right click and selecting Copy
For more informations, go to http://lldb.llvm.org/lldb-gdb.html
Mixxx is a free and open-source DJ software.
Manual
Hardware Compatibility
Reporting Bugs
Getting Involved
Contribution Guidelines
Coding Guidelines
Using Git
Developer Guide
Contributing Mappings
Mixxx Controls
MIDI Scripting
Components JS