From 403c7729734ed1a545f0436e31c4d14a2724606d Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Wed, 13 Sep 2017 11:05:31 +0200 Subject: sax: allow some debug logging in FastParser Multi-threading makes this difficult; have it print synchronously where it is in the input when setting: SAL_LOG="+INFO.sax.fastparser+WARN" SAX_DISABLE_THREADS=1 Change-Id: I8c77974acb2b4d4e273fc9c0f273c345d8feb2ff --- sax/README | 3 +++ sax/source/fastparser/fastparser.cxx | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'sax') diff --git a/sax/README b/sax/README index 0e1e6175f3f1..00ca0f1af5ae 100644 --- a/sax/README +++ b/sax/README @@ -8,3 +8,6 @@ UNO services for SAX parsing and C++ functions for XMLSchema-2 data types. + C++ wrapper for fast SAX parser + C++ XMLSchema-2 data type conversion helpers +Multi-threading in FastParser can be disabled for debugging purposes with: +SAX_DISABLE_THREADS=1 SAL_LOG="+INFO.sax.fastparser+WARN" + diff --git a/sax/source/fastparser/fastparser.cxx b/sax/source/fastparser/fastparser.cxx index 8188724a91d9..a0cfc2f9e740 100644 --- a/sax/source/fastparser/fastparser.cxx +++ b/sax/source/fastparser/fastparser.cxx @@ -759,7 +759,8 @@ void FastSaxParserImpl::parseStream(const InputSource& maStructSource) rEntity.mxDocumentHandler->startDocument(); } - rEntity.mbEnableThreads = (rEntity.maStructSource.aInputStream->available() > 10000); + rEntity.mbEnableThreads = rEntity.maStructSource.aInputStream->available() > 10000 + && !getenv("SAX_DISABLE_THREADS"); if (rEntity.mbEnableThreads) { @@ -1199,7 +1200,10 @@ void FastSaxParserImpl::callbackStartElement(const xmlChar *localName , const xm if (rEntity.mbEnableThreads) produce(); else + { + SAL_INFO("sax.fastparser", " startElement line " << mxDocumentLocator->getLineNumber() << " column " << mxDocumentLocator->getColumnNumber() << " " << prefix << ":" << localName); rEntity.startElement( &rEvent ); + } } catch (const Exception&) { -- cgit