README: add gdb and lldb debugging instructions.

pull/109/head
whitequark 2016-11-14 02:34:15 +00:00
parent afecbccb0f
commit f5e955a015
1 changed files with 90 additions and 5 deletions

View File

@ -9,9 +9,9 @@ This repository contains the source code of [SolveSpace][], a parametric
Installation Installation
------------ ------------
### Mac OS X (>=10.6 64-bit), Windows (>=XP 32-bit) ### macOS (>=10.6 64-bit), Windows (>=XP 32-bit)
Binary packages for Mac OS X and Windows are available via Binary packages for macOS and Windows are available via
[GitHub releases][rel]. [GitHub releases][rel].
[rel]: https://github.com/solvespace/solvespace/releases [rel]: https://github.com/solvespace/solvespace/releases
@ -45,6 +45,8 @@ After that, build SolveSpace as following:
make make
sudo make install sudo make install
The application is built as `build/src/solvespace`.
A fully functional port to GTK3 is available, but not recommended A fully functional port to GTK3 is available, but not recommended
for use due to bugs in this toolkit. for use due to bugs in this toolkit.
@ -79,8 +81,8 @@ The application is built as `build/src/solvespace.exe`.
Space Navigator support will not be available. Space Navigator support will not be available.
Building on Mac OS X Building on macOS
-------------------- -----------------
You will need XCode tools, CMake, libpng and Freetype. To build tests, you You will need XCode tools, CMake, libpng and Freetype. To build tests, you
will need cairo. Assuming you use will need cairo. Assuming you use
@ -101,7 +103,8 @@ After that, build SolveSpace as following:
cmake .. -DENABLE_TESTS=OFF cmake .. -DENABLE_TESTS=OFF
make make
The app bundle is built in `build/src/solvespace.app`. The application is built in `build/src/solvespace.app`, and
the executable file is `build/src/solvespace.app/Contents/MacOS/solvespace`.
[homebrew]: http://brew.sh/ [homebrew]: http://brew.sh/
@ -147,6 +150,88 @@ in bash:
[cmakewin]: http://www.cmake.org/download/#latest [cmakewin]: http://www.cmake.org/download/#latest
[mingw]: http://www.mingw.org/ [mingw]: http://www.mingw.org/
Debugging a crash
-----------------
SolveSpace releases are throughly tested but sometimes they contain crash
bugs anyway. The reason for such crashes can be determined only if the executable
was built with debug information.
### Debugging a released version
The Linux distributions usually include separate debug information packages.
On a Debian derivative (e.g. Ubuntu), these can be installed with:
apt-get install solvespace-dbg
The macOS releases include the debug information, and no further action
is needed.
The Windows releases include the debug information on the GitHub
[release downloads page](https://github.com/solvespace/solvespace/releases).
### Debugging a custom build
If you are building SolveSpace yourself on a Unix-like platform,
configure or re-configure SolveSpace to produce a debug build, and
then re-build it:
cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug [other cmake args...]
make
If you are building SolveSpace yourself using the Visual Studio IDE,
select Debug from the Solution Configurations list box on the toolbar,
and build the solution.
### Debugging with gdb
gdb is a debugger that is mostly used on Linux. First, run SolveSpace
under debugging:
gdb [path to solvespace executable]
(gdb) run
Then, reproduce the crash. After the crash, attach the output in
the console, as well as output of the following gdb commands to
a bug report:
(gdb) backtrace
(gdb) info locals
If the crash is not easy to reproduce, please generate a core file,
which you can use to resume the debugging session later, and provide
any other information that is requested:
(gdb) generate-core-file
This will generate a large file called like `core.1234` in the current
directory; it can be later re-loaded using `gdb --core core.1234`.
### Debugging with lldb
lldb is a debugger that is mostly used on macOS. First, run SolveSpace
under debugging:
lldb [path to solvespace executable]
(lldb) run
Then, reproduce the crash. After the crash, attach the output in
the console, as well as output of the following gdb commands to
a bug report:
(lldb) backtrace all
(lldb) frame variable
If the crash is not easy to reproduce, please generate a core file,
which you can use to resume the debugging session later, and provide
any other information that is requested:
(lldb) process save-core "core"
This will generate a large file called `core` in the current
directory; it can be later re-loaded using `lldb -c core`.
License License
------- -------