copperspice / doxypress

Documentation generator using annotated sources for multiple computer languages
https://www.copperspice.com/
GNU General Public License v2.0
148 stars 14 forks source link

doxypress aborts with SIGABRT processing headers from wt-4.3.0 #36

Closed marlowa closed 3 years ago

marlowa commented 4 years ago

This issue is with doxypress version 1.3.7 on linux (KDE neon which is like ubuntu). While investigating the SEGV that occurs with doxypress when it is processing the wt source code, I made it so it would only process the header files (.h and .hpp only). doxypress gave SIGABRT .This is due to an assertion failure. The stack trace is shown below:

doxypress: src/docparser.cpp:6516: int DocPara::handleCommand(const QString &): Assertion `0' failed.

Program received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 51 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory. (gdb) where

0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51

1 0x00007ffff1e9a801 in __GI_abort () at abort.c:79

2 0x00007ffff1e8a39a in __assert_fail_base (fmt=0x7ffff20117d8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x208527c "0", file=file@entry=0x19d97d1 "src/docparser.cpp", line=line@entry=6516,

function=function@entry=0x19daffb "int DocPara::handleCommand(const QString &)") at assert.c:92

3 0x00007ffff1e8a412 in __GI___assert_fail (assertion=0x208527c "0", file=0x19d97d1 "src/docparser.cpp", line=6516, function=0x19daffb "int DocPara::handleCommand(const QString &)") at assert.c:101

4 0x0000000000625d56 in DocPara::handleCommand(QString8 const&) ()

5 0x000000000060addf in DocPara::parse(bool, int) ()

6 0x000000000062f094 in DocRoot::parse() ()

7 0x00000000006305e8 in validatingParseDoc(QString8 const&, int, QSharedPointer, QSharedPointer, QString8 const&, bool, bool, QString8 const&, bool, bool) ()

8 0x000000000085c9d6 in OutputList::generateDoc(QString8 const&, int, QSharedPointer, QSharedPointer, QString8 const&, bool, bool, QString8 const&, bool, bool) ()

9 0x0000000000820b04 in MemberDef::writeDocumentation(QSharedPointer, OutputList&, QString8 const&, QSharedPointer, bool, bool, bool) ()

10 0x0000000000842b80 in MemberList::writeDocumentation(OutputList&, QString8 const&, QSharedPointer, QString8 const&, bool, bool) ()

11 0x0000000000564c3a in ClassDef::writeMemberDocumentation(OutputList&, MemberListType, QString8 const&, bool) ()

12 0x0000000000566706 in ClassDef::writeDocumentationContents(OutputList&, QString8 const&) ()

13 0x0000000000566ffd in ClassDef::writeDocumentation(OutputList&) ()

14 0x0000000000488405 in Doxy_Work::generateNamespaceDocs() ()

15 0x0000000000481bb0 in generateOutput() ()

16 0x00000000007e508f in main ()

(gdb)

marlowa commented 4 years ago

After a bit of binary chopping in the Wt source code I finally found what is causing this assertion failure. It is the directive \includedoc. If the filename that follows does not exist then you get the problem. The example header below triggers the assertion.

ifndef INCLUDED_EXAMPLE

define INCLUDED_EXAMPLE

class myclass { public: /*! \brief hello

endif

bgeller commented 4 years ago

We have not been able to repeat this issue as of yet.

bgeller commented 4 years ago

We generated DoxyPress documentation from a git repo clone of wt and it completed with no crash. Would it be possible for you to email your json project file?

marlowa commented 4 years ago

Excellent. Thanks for letting me know.

On Tue, 12 May 2020 at 23:29, Barbara notifications@github.com wrote:

We generated DoxyPress documentation from a git repo clone of wt and it completed with no crash.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/copperspice/doxypress/issues/36#issuecomment-627632936, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABTYKUHLABCHYOP634O2MOTRRHEVFANCNFSM4LUFQ4YQ .

-- Regards,

Andrew Marlow http://www.andrewpetermarlow.co.uk

agserm commented 3 years ago

Closing, has been resolved. Feel free to reopen if you still have an issue.