Skip to content

Instantly share code, notes, and snippets.

#!/bin/bash
# Whitespace-ignoring diff (for C/C++ files): use as a replacement for 'git diff'
if [[ -z $GIT_DIFF_PATH_COUNTER ]]; then
# GIT_DIFF_PATH_COUNTER not defined: the script acts as a replacement for 'git diff'
GIT_EXTERNAL_DIFF=$0 exec git diff $*
fi
if [[ $# -ne 7 ]]; then
echo 'Expected 7 arguments as GIT_EXTERNAL_DIFF tool'
template<typename DST, typename SRC, typename X, typename A>
struct make_property_chain_I_1 {
static void ExportThunk(const Callback<void(DST)> &self, SRC value) {
PropertyImpl<SRC, DST>::Export(value, self);
}
static void Export(const X &self, const Callback<void(DST)> &returnz) {
A::Get::thunk_(self, ConstReferenceCaller<Callback<void(DST)>, void(SRC), ExportThunk>(returnz));
}

This content is now available at https://wiki.unvanquished.net/wiki/Breakpad

Getting a stack trace from a minidump

(1) Getting the tools

The Breakpad repo for Daemon Engine is at https://github.com/DaemonEngine/breakpad. If you have already checked out Daemon, then it is located in the libs/breakpad/ submodule there. cd into this repo.

Daemon's Breakpad fork is based on https://github.com/jon-turney/google-breakpad, with only minor changes. Jon Turney's version adds MinGW support. It is in turn a fork of Chromium's Breakpad https://chromium.googlesource.com/breakpad/breakpad.

Performing C++ SOURCE FILE Test _Wno_error_extern_c_compat failed with the following output:
Change Dir: /home/perturbed/bunv/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTryCompileExec2867412625/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec2867412625.dir/build.make CMakeFiles/cmTryCompileExec2867412625.dir/build
make[1]: Entering directory '/home/perturbed/bunv/build/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/perturbed/bunv/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec2867412625.dir/src.cxx.o
/usr/bin/c++ -ffast-math -fno-strict-aliasing -m32 -msse2 -mtune=generic -mfpmath=sse -fvisibility=hidden -std=gnu++11 -pthread -D_Wno_error_extern_c_compat -Werror -Wno-error=extern-c-compat -o CMakeFiles/cmTryCompileExec2867412625.dir/src.cxx.o -c /home/perturbed/bunv/build/CMakeFiles/CMakeTmp/src.cxx
cc1plus: error: -Werror=extern-c-compat: no option -Wextern-c-compat
CEA2C2 ?? ??
0FCEA2C3 inc edx
0FCEA2C4 add al,8Bh
0FCEA2C6 push eax
0FCEA2C7 and bh,bh
0FCEA2C9 ror byte ptr [ecx+7D83F445h],cl
0FCEA2CF hlt
0FCEA2D0 add byte ptr [esi+ecx-7Dh],dh
0FCEA2D4 jge 0FCEA2CA
0FCEA2D6 add dword ptr [ebp+edx-7Dh],esi