Skip to content

Commit

Permalink
Fixing 3.1.1 crash, adding crash symbolication script and instruction…
Browse files Browse the repository at this point in the history
…s in README
  • Loading branch information
SteffeyDev committed May 15, 2020
1 parent 7691b6d commit ad34c4b
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 1 deletion.
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -320,3 +320,19 @@ Tune your MIDI software to send only one of the two signals, either ok button pr
- The code is based on the *SwitcherPanel*-Democode (Version 3.5) provided by Blackmagic.
- [VVOSC](http://code.google.com/p/vvopensource/) is used as OSC-framework.
- Program icon based heavily on the ATEM Software Control icon by [Blackmagic Design](http://www.blackmagicdesign.com).

----------

## Developer Resources

### Find what line a crash occured on given a crash report (on MacOS)

People like to send crash reports in issues. You can use this method to find out which line of the program crashed from just the crash report and version number.

1. Download the `atemOSC.debug.zip` file associated with the release that crashed and unzip it
2. At a command line, `cd` into the unzipped folder (Usually `~/Downloads/atemOSC.debug`)
3. Copy the crash report into a file (e.g. `crash.log`) and save it to the unzipped folder
4. Copy the `find_crash` bash script from the root of this repository into that folder as well
5. Run `./find_crash crash.log`, replacing `crash.log` with whatever your crash report file is named
6. The script should tell you which line in which file caused the crash

2 changes: 1 addition & 1 deletion atemOSC/AppDelegate.mm
Original file line number Diff line number Diff line change
Expand Up @@ -527,7 +527,7 @@ - (void)switcherConnected

// Audio Inputs
IBMDSwitcherFairlightAudioInputIterator* audioInputIterator = NULL;
if (SUCCEEDED(mAudioMixer->CreateIterator(IID_IBMDSwitcherFairlightAudioInputIterator, (void**)&audioInputIterator)))
if (SUCCEEDED(mFairlightAudioMixer->CreateIterator(IID_IBMDSwitcherFairlightAudioInputIterator, (void**)&audioInputIterator)))
{
IBMDSwitcherFairlightAudioInput* audioInput = NULL;
while (S_OK == audioInputIterator->Next(&audioInput))
Expand Down
7 changes: 7 additions & 0 deletions find_crash
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash

# Usage: ./find_crash <crash_file>
crashed_thread=$(cat $1 | grep "Crashed Thread" | cut -d' ' -f3)
start_loc=$(cat $1 | grep "Binary Images" -A1 | grep -v Binary | cut -d' ' -f1)
crash_loc=$(cat $1 | grep "Thread $crashed_thread Crashed" -A1 | grep -v Thread | cut -d' ' -f3)
xcrun atos -o atemOSC.app.dSYM/Contents/Resources/DWARF/atemOSC -arch x86_64 -l $start_loc $crash_loc

0 comments on commit ad34c4b

Please sign in to comment.