aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGavin Andresen <gavinandresen@gmail.com>2014-05-23 10:30:38 -0400
committerWladimir J. van der Laan <laanwj@gmail.com>2014-05-23 18:05:09 +0200
commit042bdd325cc8d4560d0b8af2d15e28d0184fb5d4 (patch)
treebd4a334419c7e774d9ea3042e4617bf2fcfabe92
parent48115f5313d35805d91e2c07c310726b586669f7 (diff)
downloadbitcoin-042bdd325cc8d4560d0b8af2d15e28d0184fb5d4.tar.xz
Add Tips and Tricks section to README
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com> Rebased-From: c47f537
-rw-r--r--README.md35
1 files changed, 35 insertions, 0 deletions
diff --git a/README.md b/README.md
index 3e9ec25980..98edf87ee0 100644
--- a/README.md
+++ b/README.md
@@ -81,3 +81,38 @@ Periodically the translations are pulled from Transifex and merged into the git
**Important**: We do not accept translation changes as github pull request because the next
pull from Transifex would automatically overwrite them again.
+
+Development tips and tricks
+---------------------------
+
+**compiling for debugging**
+
+Run configure with the --enable-debug option, then make. Or run configure with
+CXXFLAGS="-g -ggdb -O0" or whatever debug flags you need.
+
+**debug.log**
+
+If the code is behaving strangely, take a look in the debug.log file in the data directory;
+error and debugging message are written there.
+
+The -debug=... command-line option controls debugging; running with just -debug will turn
+on all categories (and give you a very large debug.log file).
+
+The Qt code routes qDebug() output to debug.log under category "qt": run with -debug=qt
+to see it.
+
+**testnet and regtest modes**
+
+Run with the -testnet option to run with "play bitcoins" on the test network, if you
+are testing multi-machine code that needs to operate across the internet.
+
+If you are testing something that can run on one machine, run with the -regtest option.
+In regression test mode blocks can be created on-demand; see qa/rpc-tests/ for tests
+that run in -regest mode.
+
+**DEBUG_LOCKORDER**
+
+Bitcoin Core is a multithreaded application, and deadlocks or other multithreading bugs
+can be very difficult to track down. Compiling with -DDEBUG_LOCKORDER (configure
+CXXFLAGS="-DDEBUG_LOCKORDER -g") inserts run-time checks to keep track of what locks
+are held, and adds warning to the debug.log file if inconsistencies are detected.