configure: added --enable-fulldebug to enable extra/expensive debug code.

This is mostly to avoid the allocation required by the externalization of the
transaction dictionary, which in some cases is huge.

This should reduce the massive memory usage required to inspect the externalized
dictionary.
This commit is contained in:
Juan RP 2015-05-28 11:02:40 +02:00
parent c464874c1e
commit b2dd18faba
3 changed files with 17 additions and 0 deletions

9
NEWS
View File

@ -1,5 +1,14 @@
xbps-0.45 (???): xbps-0.45 (???):
* configure: added `--enable-fulldebug` option to enable extra/expensive
debug output.
* libxbps: fixed a dangling pointer when unpacking configuration files that
are renamed (because they existed), if the unpack callback function is set.
* proplib: extra checks when internalizing plists to avoid NULL pointer
dereferences with broken files.
* Move manual pages of all utilities to the section 1 (user commands). * Move manual pages of all utilities to the section 1 (user commands).
The xbps utilities can be used by any user so that there's no point The xbps utilities can be used by any user so that there's no point
in having them in the section 8 (administraction and privileged commands). in having them in the section 8 (administraction and privileged commands).

View File

@ -339,9 +339,11 @@ exec_transaction(struct xbps_handle *xhp, int maxcols, bool yes, bool drun)
} }
goto out; goto out;
} }
#ifdef FULL_DEBUG
xbps_dbg_printf(xhp, "Dictionary before transaction happens:\n"); xbps_dbg_printf(xhp, "Dictionary before transaction happens:\n");
xbps_dbg_printf_append(xhp, "%s", xbps_dbg_printf_append(xhp, "%s",
xbps_dictionary_externalize(xhp->transd)); xbps_dictionary_externalize(xhp->transd));
#endif
trans->xhp = xhp; trans->xhp = xhp;
trans->d = xhp->transd; trans->d = xhp->transd;

6
configure vendored
View File

@ -41,6 +41,7 @@ for instance \`--prefix=\$HOME'.
--verbose Disable silent build to see compilation details --verbose Disable silent build to see compilation details
--enable-api-docs Install XBPS API Library documentation (default disabled) --enable-api-docs Install XBPS API Library documentation (default disabled)
--enable-debug Build with debugging code and symbols (default disabled) --enable-debug Build with debugging code and symbols (default disabled)
--enable-fulldebug Enables extra debugging code (default disabled)
--enable-static Build XBPS static utils (default disabled) --enable-static Build XBPS static utils (default disabled)
--enable-tests Build and install Kyua tests (default disabled) --enable-tests Build and install Kyua tests (default disabled)
Needs atf >= 0.15 (http://code.google.com/p/kyua) Needs atf >= 0.15 (http://code.google.com/p/kyua)
@ -53,6 +54,7 @@ for x; do
var=${x#*=} var=${x#*=}
case "$opt" in case "$opt" in
--enable-debug) DEBUG=yes;; --enable-debug) DEBUG=yes;;
--enable-fulldebug) FULL_DEBUG=yes;;
--prefix) PREFIX=$var;; --prefix) PREFIX=$var;;
--exec-prefix) EPREFIX=$var;; --exec-prefix) EPREFIX=$var;;
--bindir) BINDIR=$var;; --bindir) BINDIR=$var;;
@ -204,6 +206,10 @@ if [ -n "$DEBUG" -a "$DEBUG" != no -a "$DEBUG" != false ]; then
else else
echo "CPPFLAGS+= -DNDEBUG" >>$CONFIG_MK echo "CPPFLAGS+= -DNDEBUG" >>$CONFIG_MK
fi fi
if [ -n "$FULL_DEBUG" ]; then
echo "Enabling extra debugging code."
echo "CPPFLAGS+= -DFULL_DEBUG" >>$CONFIG_MK
fi
case "$OS" in case "$OS" in
linux) linux)