What are the debug categories? In the bitcoin configuration you can set debug logging for the following categories. I can't seem to find an explanation of what each of these categories does. Can someone explain them or point me in the right direction?

debug=category
Output debugging information (default: 0, supplying
 is optional). If  is not supplied or if
 = 1, output all debugging information.  can be:
net, tor, mempool, http, bench, zmq, db, rpc, estimatefee, addrman,
selectcoins, reindex, cmpctblock, rand, prune, proxy, mempoolrej,
libevent, coindb, qt, leveldb.
net: Networking. All messages related to communicating with other nodes on the network, including what P2P messages were sent and received and to whom and other information about the network messages.

tor: TOR. All messages related to using a TOR SOCKS5 proxy and TOR hidden service (used for receiving incoming connections over TOR). This includes messages about the creation and shutdown of the TOR hidden service and messages about the connection to the TOR proxy.

mempool: Memory pool. Messages related to actions done in the memory pool including the acceptance and removal of transactions.

http: HTTP Server. Message related to the HTTP server that is used to handle the RPC requests. These messages will typically be for the startup and shutdown of the server as well as received requests.

bench: Benchmarks. Messages about the performance of various parts of the software that can have performance issues.

zmq: ZeroMQ. Messages about the ZeroMQ notification system, including the startup and shutdown of the service as well as when notifications are issued and new clients connected.

db: Wallet Database. Messages about the status of the Berkeley Database engine used for the wallet database. This will include messages about the database flushes.

rpc: RPC Server. Messages about the RPC server including its startup and shutdown as well as when commands are issued.

estimatefee: Fee Estimation. Messages about the fee estimation algorithm including messages about when fee estimates are requested and information about the status of the fee estimator.

addrman: Address Manager. Messages about the status of the address manager and when addresses are added or removed from the address manager database.

selectcoins: Coin Selection. Messages about the UTXOs that are selected when sending money.

reindex: Reindexing. Messages about the reindexing process, in particular errors about out of order blocks and repeated blocks.

cmpctblock: Compact Blocks. Messages about the Compact Blocks relay protocol including when blocks are partially downloaded or reconstructed.

rand: Randomness. Messages for when randomness is needed by any function.

prune: Pruning. Messages about local blockchain pruning, including the result of a pruning operation.

proxy: Proxy. Messages about using a SOCKS5 proxy and its authentication.

mempoolrej: Memory pool Rejects. Messages about transactions that are rejected from the memory pool.

libevent: Libevent. Messages about the libevent library which is used for the HTTP server.

coindb: Coin Database. Messages about the coin database which contains the UTXO set. Includes messages about database flushes and writes.

qt: Qt. Messages about Qt, the GUI framework.

leveldb: LevelDB. Messages about LevelDB which is used for the block indexes and coin databse.



Note that this is not an exhaustive list of the types of messages you will see for each category. Also some categories have many possible messages whilst others have very few.