LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 04-28-2018, 05:32 PM   #1
orbea
Senior Member
 
Registered: Feb 2015
Distribution: Slackware64-current
Posts: 1,477

Rep: Reputation: Disabled
Slackware-current: doxygen-1.18.14 segmentation fault


Using doxygen-1.8.14-i586-2.txz in Slackware64-current doxygen will segfault when ran in the cppunit doc directory.

Code:
Generatinmake[2]: *** [Makefile:541: html/index.html] Segmentation fault
The Makefile has the following.
Code:
html/index.html: Doxyfile $(doxygen_input)
        "/usr/bin/doxygen"
I next found it can be reproduced easily.
Code:
wget https://dev-www.libreoffice.org/src/cppunit-1.14.0.tar.gz

tar xvf ./cppunit-1.14.0.tar.gz
cd ./cppunit-1.14.0

./configure
cd doc
doxygen

# should crash here
The backtrace.
Code:
Program received signal SIGSEGV, Segmentation fault.
0x000000000085ce21 in QGListIterator::QGListIterator (this=0x7fffffffd9a0, l=...)
    at /tmp/doxygen-1.8.14/qtools/qglist.cpp:1058
1058        curNode = list->firstNode;          // set to first node
(gdb) bt
#0  0x000000000085ce21 in QGListIterator::QGListIterator (this=0x7fffffffd9a0, l=...)
    at /tmp/doxygen-1.8.14/qtools/qglist.cpp:1058
#1  0x0000000000457001 in QListIterator<Argument>::QListIterator (this=0x7fffffffd9a0,
    l=...) at /tmp/doxygen-1.8.14/qtools/qlist.h:129
#2  0x000000000057d5f0 in insertMemberFunctionParams (id_memberdef=529, md=0x19fb710, def=
    0x148c800) at /tmp/doxygen-1.8.14/src/sqlite3gen.cpp:595
#3  0x000000000057fd4b in generateSqlite3ForMember (md=0x19fb710, def=0x148c800)
    at /tmp/doxygen-1.8.14/src/sqlite3gen.cpp:1098
#4  0x0000000000580218 in generateSqlite3Section (d=0x148c800, ml=0x18248d0)
    at /tmp/doxygen-1.8.14/src/sqlite3gen.cpp:1158
#5  0x0000000000580d95 in generateSqlite3ForClass (cd=0x148c800)
    at /tmp/doxygen-1.8.14/src/sqlite3gen.cpp:1300
#6  0x0000000000581b04 in generateSqlite3 () at /tmp/doxygen-1.8.14/src/sqlite3gen.cpp:1518
#7  0x000000000044ee48 in generateOutput () at /tmp/doxygen-1.8.14/src/doxygen.cpp:11607
#8  0x0000000000419cb3 in main (argc=1, argv=0x7fffffffe3a8)
    at /tmp/doxygen-1.8.14/src/main.cpp:38
Full log - https://pastebin.com/yNJhV6Jd

I then next found its broken in doxygen 1.18.14 and their current git master, but it works in the older 1.18.13.

Next git bisect revealed this as the first bad commit.
Code:
9468ede259153cf79eb8d61635389744e9a2ee7d is the first bad commit
commit 9468ede259153cf79eb8d61635389744e9a2ee7d
Author: Dimitri van Heesch <dimitri@stack.nl>
Date:   Sun Oct 29 11:47:48 2017 +0100

    Bug 789168 - Increasing access of inherited C++ members with 'using...' is not recognized by Doxygen

:040000 040000 6101213cf663d18601f6a54422de0b5be79a4b8f 7aa22442fc644425ab357edc86770bf4dfc836e1 M	src
https://github.com/doxygen/doxygen/c...389744e9a2ee7d

I next tried to revert it with the 1.18.14 release and found the crash no longer occurred, but I have not tested it much beyond that.
Code:
patch -R -p1 < $CWD/test.patch
Code:
From 9468ede259153cf79eb8d61635389744e9a2ee7d Mon Sep 17 00:00:00 2001
From: Dimitri van Heesch <dimitri@stack.nl>
Date: Sun, 29 Oct 2017 11:47:48 +0100
Subject: [PATCH] Bug 789168 - Increasing access of inherited C++ members with
 'using...' is not recognized by Doxygen

---
 src/doxygen.cpp | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index d3554cffd..ec97d4354 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -2112,9 +2112,8 @@ static void findUsingDeclImports(EntryNav *rootNav)
       (rootNav->parent()->section()&Entry::COMPOUND_MASK) // in a class/struct member
      )
   {
-    //printf("Found using declaration %s at line %d of %s inside section %x\n",
-    //    root->name.data(),root->startLine,root->fileName.data(),
-    //    root->parent->section);
+    //printf("Found using declaration %s inside section %x\n",
+    //    rootNav->name().data(), rootNav->parent()->section());
     QCString fullName=removeRedundantWhiteSpace(rootNav->parent()->name());
     fullName=stripAnonymousNamespaceScope(fullName);
     fullName=stripTemplateSpecifiersFromScope(fullName);
@@ -2130,7 +2129,7 @@ static void findUsingDeclImports(EntryNav *rootNav)
         ClassDef *bcd = getResolvedClass(cd,0,scope); // todo: file in fileScope parameter
         if (bcd)
         {
-          //printf("found class %s\n",bcd->name().data());
+          //printf("found class %s memName=%s\n",bcd->name().data(),memName.data());
           MemberNameInfoSDict *mndict=bcd->memberNameInfoSDict();
           if (mndict)
           {
@@ -11181,7 +11180,6 @@ void parseInput()
   g_s.end();
 
   g_s.begin("Searching for members imported via using declarations...\n");
-  findUsingDeclImports(rootNav);
   // this should be after buildTypedefList in order to properly import
   // used typedefs
   findUsingDeclarations(rootNav);
@@ -11249,6 +11247,7 @@ void parseInput()
   g_s.begin("Searching for member function documentation...\n");
   findObjCMethodDefinitions(rootNav);
   findMemberDocumentation(rootNav); // may introduce new members !
+  findUsingDeclImports(rootNav); // may introduce new members !
 
   transferRelatedFunctionDocumentation();
   transferFunctionDocumentation();
 
Old 04-28-2018, 08:16 PM   #2
volkerdi
Slackware Maintainer
 
Registered: Dec 2002
Location: Minnesota
Distribution: Slackware! :-)
Posts: 1,619

Rep: Reputation: 4945Reputation: 4945Reputation: 4945Reputation: 4945Reputation: 4945Reputation: 4945Reputation: 4945Reputation: 4945Reputation: 4945Reputation: 4945Reputation: 4945
Thank you very much for this! I'd run into it here but had not gone to the lengths to figure it out that you did.
 
4 members found this post helpful.
Old 04-28-2018, 10:21 PM   #3
orbea
Senior Member
 
Registered: Feb 2015
Distribution: Slackware64-current
Posts: 1,477

Original Poster
Rep: Reputation: Disabled
Glad I could help.

Given the updated package I will mark this thread as solved.
Code:
Sun Apr 29 00:07:10 UTC 2018
d/doxygen-1.8.14-x86_64-3.txz: Rebuilt.
       Reverted patch that causes doxygen to segfault. Thanks to orbea.
l/libvisio-0.1.6-x86_64-4.txz: Rebuilt.
       Removed build script kludge to work around doxygen segfault.

Last edited by orbea; 04-28-2018 at 10:49 PM. Reason: Added relevent libvisio changelog.
 
3 members found this post helpful.
Old 04-29-2018, 02:00 AM   #4
ponce
Senior Member
 
Registered: Aug 2004
Location: Pisa, Italy
Distribution: Slackware
Posts: 4,567

Rep: Reputation: Disabled
thanks orbea also from me: that fixed building of mpd and opencv (and maybe others) too on current.
 
Old 01-04-2019, 08:49 AM   #5
the_zone
Member
 
Registered: Nov 2008
Distribution: Slackware
Posts: 55

Rep: Reputation: 0
It still seem to happen in doygen 1.8.15

while trying to to build libxkbcommon via Slackbuilds on slackware64-current (02-01-2019).
Quote:
CCLD libxkbcommon-x11.la
GEN doc/html
/bin/sh: line 4: 25382 Done ( cat doc/Doxyfile; echo "INPUT = README.md doc/quick-guide.md doc/compat.md xkbcommon/xkbcommon.h xkbcommon/xkbcommon-names.h xkbcommon/xkbcommon-x11.h xkbcommon/xkbcommon-compose.h"; echo "OUTPUT_DIRECTORY = /tmp/SBo/libxkbcommon-0.8.2/doc" )
25383 Segmentation fault | ./scripts/doxygen-wrapper "/usr/bin/doxygen" - "/tmp/SBo/libxkbcommon-0.8.2"
make[1]: *** [Makefile:2389: doc/html] Error 139
make[1]: Leaving directory '/tmp/SBo/libxkbcommon-0.8.2'
make: *** [Makefile:1023: all] Error 2
 
Old 01-04-2019, 10:35 AM   #6
ponce
Senior Member
 
Registered: Aug 2004
Location: Pisa, Italy
Distribution: Slackware
Posts: 4,567

Rep: Reputation: Disabled
same here, seems only going back to the previous 1.8.14 version (with the doxygen.9468ede.diff.gz patch reverted) avoids that segfault (also the latest doxygen in git segfaults).

http://slackmirror.cbpf.br/pub/slack...4-x86_64-3.txz
 
Old 01-06-2019, 10:06 AM   #7
orbea
Senior Member
 
Registered: Feb 2015
Distribution: Slackware64-current
Posts: 1,477

Original Poster
Rep: Reputation: Disabled
How do you report issues upstream to doxygen? When this thread was first made I couldn't figure out where and hoped they would figure it out on their own, I guess that didn't happen..
 
Old 01-06-2019, 11:04 AM   #8
average_user
Member
 
Registered: Dec 2010
Location: Warsaw, Poland
Distribution: Slackware
Posts: 323

Rep: Reputation: 124Reputation: 124
They are on github: https://github.com/doxygen/doxygen. 1839 issues, 81 pull requests and 2265 stars - that tells us it's a really popular project. They also have a mailing list https://sourceforge.net/p/doxygen/ma...xygen-develop/ but it doesn't seem to attract users.

EDIT: These mailing lists are served by gmane, for example gmane.text.doxygen.general.

Last edited by average_user; 01-06-2019 at 11:20 AM.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Palemoon segmentation fault with Slackware-current mfgordon Slackware 10 04-16-2016 07:11 PM
Slackware current 64bit dirmngr Segmentation fault(segfault) toodr Slackware 2 09-03-2015 05:40 PM
slackware CURRENT bluedevil-wizard = segmentation fault USUARIONUEVO Slackware 2 07-19-2015 09:17 PM
[SOLVED] Slackware current: Firefox 16.0 segmentation fault burdi01 Slackware 7 10-10-2012 11:03 AM
Sylpheed segmentation fault in Slackware -current Affromen Slackware 1 02-20-2010 07:22 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 04:36 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration