mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-06-29 18:20:58 +02:00
doc: Updating docs from autotools to cmake
replaced --enable-debug with -DCMAKE_BUILD_TYPE=Debug in developer-notes replaced --enable-multiprocess with -DWITH_MULTIPROCESS=ON replaced --disable-zmq with -DWITH_ZMQ=OFF
This commit is contained in:
@ -418,8 +418,8 @@ see [test/functional/](/test/functional) for tests that run in `-regtest` mode.
|
||||
### DEBUG_LOCKORDER
|
||||
|
||||
Bitcoin Core is a multi-threaded application, and deadlocks or other
|
||||
multi-threading bugs can be very difficult to track down. The `--enable-debug`
|
||||
configure option adds `-DDEBUG_LOCKORDER` to the compiler flags. This inserts
|
||||
multi-threading bugs can be very difficult to track down. The `-DCMAKE_BUILD_TYPE=Debug`
|
||||
build option adds `-DDEBUG_LOCKORDER` to the compiler flags. This inserts
|
||||
run-time checks to keep track of which locks are held and adds warnings to the
|
||||
`debug.log` file if inconsistencies are detected.
|
||||
|
||||
@ -429,9 +429,8 @@ Defining `DEBUG_LOCKCONTENTION` adds a "lock" logging category to the logging
|
||||
RPC that, when enabled, logs the location and duration of each lock contention
|
||||
to the `debug.log` file.
|
||||
|
||||
The `--enable-debug` configure option adds `-DDEBUG_LOCKCONTENTION` to the
|
||||
compiler flags. You may also enable it manually for a non-debug build by running
|
||||
configure with `-DDEBUG_LOCKCONTENTION` added to your CPPFLAGS,
|
||||
The `-DCMAKE_BUILD_TYPE=Debug` build option adds `-DDEBUG_LOCKCONTENTION` to the
|
||||
compiler flags. You may also enable it manually by building with `-DDEBUG_LOCKCONTENTION` added to your CPPFLAGS,
|
||||
i.e. `CPPFLAGS="-DDEBUG_LOCKCONTENTION"`, then build and run bitcoind.
|
||||
|
||||
You can then use the `-debug=lock` configuration option at bitcoind startup or
|
||||
@ -579,7 +578,7 @@ cmake -B build -DSANITIZERS=thread
|
||||
If you are compiling with GCC you will typically need to install corresponding
|
||||
"san" libraries to actually compile with these flags, e.g. libasan for the
|
||||
address sanitizer, libtsan for the thread sanitizer, and libubsan for the
|
||||
undefined sanitizer. If you are missing required libraries, the configure script
|
||||
undefined sanitizer. If you are missing required libraries, the build
|
||||
will fail with a linker error when testing the sanitizer flags.
|
||||
|
||||
The test suite should pass cleanly with the `thread` and `undefined` sanitizers. You
|
||||
@ -595,7 +594,7 @@ See the CI config for more examples, and upstream documentation for more informa
|
||||
about any additional options.
|
||||
|
||||
Not all sanitizer options can be enabled at the same time, e.g. trying to build
|
||||
with `-DSANITIZERS=address,thread` will fail in the configure script as
|
||||
with `-DSANITIZERS=address,thread` will fail in the build as
|
||||
these sanitizers are mutually incompatible. Refer to your compiler manual to
|
||||
learn more about these options and which sanitizers are supported by your
|
||||
compiler.
|
||||
@ -619,7 +618,7 @@ The code is multi-threaded and uses mutexes and the
|
||||
Deadlocks due to inconsistent lock ordering (thread 1 locks `cs_main` and then
|
||||
`cs_wallet`, while thread 2 locks them in the opposite order: result, deadlock
|
||||
as each waits for the other to release its lock) are a problem. Compile with
|
||||
`-DDEBUG_LOCKORDER` (or use `--enable-debug`) to get lock order inconsistencies
|
||||
`-DDEBUG_LOCKORDER` (or use `-DCMAKE_BUILD_TYPE=Debug`) to get lock order inconsistencies
|
||||
reported in the `debug.log` file.
|
||||
|
||||
Re-architecting the core code so there are better-defined interfaces
|
||||
@ -1062,8 +1061,8 @@ bool Chainstate::PreciousBlock(BlockValidationState& state, CBlockIndex* pindex)
|
||||
```
|
||||
|
||||
- Build and run tests with `-DDEBUG_LOCKORDER` to verify that no potential
|
||||
deadlocks are introduced. As of 0.12, this is defined by default when
|
||||
configuring with `--enable-debug`.
|
||||
deadlocks are introduced. This is defined by default when
|
||||
building with `-DCMAKE_BUILD_TYPE=Debug`.
|
||||
|
||||
- When using `LOCK`/`TRY_LOCK` be aware that the lock exists in the context of
|
||||
the current scope, so surround the statement and the code that needs the lock
|
||||
|
Reference in New Issue
Block a user