New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash when building gtkmm documentation (Origin: bugzilla #741417) #5690

Closed
doxygen opened this Issue Jul 2, 2018 · 0 comments

Comments

Projects
None yet
1 participant
@doxygen
Owner

doxygen commented Jul 2, 2018

status RESOLVED severity normal in component general for ---
Reported in version 1.8.8-GIT on platform Other
Assigned to: Dimitri van Heesch

Original attachment names and IDs:

On 2014-12-12 03:58:07 +0000, Ting-Wei Lan wrote:

This problem happens in doxygen 1.8.8 release and the master branch.
I test it with the master branch of doxygen and gtkmm.

Here is the output:

Building group list...
Building directory list...
Building namespace list...
Building file list...
Building class list...
27473 Segmentation fault (core dumped) | MMDOCTOOLDIR="../docs" "/path/to/doxygen" -

Here is the backtrace:

0 __strncpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S:296

1 0x00000000007eb661 in qstrncpy (dst=0x31292a8 "TypeTraits< Glib::RefPtr< Gio::Drive > >",

src=0x10312b687 <error: Cannot access memory at address 0x10312b687>, len=41) at qcstring.cpp:555

2 0x00000000007ea770 in QCString::mid (this=0x7fff87735370, index=4294967295, len=40) at qcstring.cpp:260

3 0x000000000040653c in buildScopeFromQualifiedName (name=..., level=4, lang=SrcLangExt_Unknown, tagInfo=0x232c770) at doxygen.cpp:1013

4 0x00000000004075b6 in addClassToContext (rootNav=0x2236e60) at doxygen.cpp:1324

5 0x0000000000407c0c in buildClassList (rootNav=0x2236e60) at doxygen.cpp:1412

6 0x0000000000407c56 in buildClassList (rootNav=0x23cf9c0) at doxygen.cpp:1414

7 0x0000000000407c56 in buildClassList (rootNav=0x1b10900) at doxygen.cpp:1414

8 0x00000000004315d9 in parseInput () at doxygen.cpp:11099

9 0x000000000040362a in main (argc=2, argv=0x7fff87735888) at main.cpp:37

On 2014-12-13 10:25:25 +0000, Dimitri van Heesch wrote:

I think this problem has already been solved in the meantime. Can you please check with the latest snapshot from GitHub?

On 2014-12-13 15:11:23 +0000, Ting-Wei Lan wrote:

I already use the latest snapshot (master branch). It still crashes now.

On 2014-12-14 17:00:32 +0000, Dimitri van Heesch wrote:

Can you please provide some step by step instructions how to reproduce this?
Also mention the version of gtkmm you are using. I tried running doxygen on gtkmm 3.10.1 sources but I didn't get this crash.

On 2014-12-14 18:13:53 +0000, Ting-Wei Lan wrote:

It works fine with 3.10.1, but it crashes with the master branch of gtkmm.

Steps to reproduce the problem:

  1. Get the latest gtkmm source:
    $ git clone git://git.gnome.org/gtkmm

  2. Build gtkmm with default options
    $ env DOXYGEN=/path/to/latest/doxygen ./autogen.sh --prefix /path/to/build/prefix --disable-static
    $ make -j4

Doxygen will crash when building the documentation. I test this on Fedora 21.

On 2014-12-15 20:03:04 +0000, Dimitri van Heesch wrote:

Thanks for the details. Unfortunately my Linux distro is too old to resolve all build dependencies for the latest greatest version of gtkmm.

Could you please attach the Doxyfile that is created after a succesful configure/build to this bug report? That's probably all I need.

On 2014-12-16 01:58:03 +0000, Ting-Wei Lan wrote:

Created attachment 292785
reference/Doxyfile

gtkmm constructs Doxyfile using shell command and the result are sent to doxygen by stdin.
The command it uses is:

( echo '@include =' reference/Doxyfile && echo 'INPUT =' ../gdk/gdkmm/applaunchcontext.h ../gdk/gdkmm/cursor.h ../gdk/gdkmm/device.h ../gdk/gdkmm/devicemanager.h ../gdk/gdkmm/display.h ../gdk/gdkmm/displaymanager.h ../gdk/gdkmm/dragcontext.h ../gdk/gdkmm/event.h ../gdk/gdkmm/pixbuf.h ../gdk/gdkmm/pixbufanimation.h ../gdk/gdkmm/pixbufanimationiter.h ../gdk/gdkmm/pixbufformat.h ../gdk/gdkmm/pixbufloader.h ../gdk/gdkmm/rectangle.h ../gdk/gdkmm/rgba.h ../gdk/gdkmm/screen.h ../gdk/gdkmm/timecoord.h ../gdk/gdkmm/types.h ../gdk/gdkmm/visual.h ../gdk/gdkmm/window.h ../gdk/gdkmm/color.h ../gdk/gdkmm/general.h ../gtk/gtkmm/aboutdialog.h ../gtk/gtkmm/accelgroup.h ../gtk/gtkmm/accellabel.h ../gtk/gtkmm/action.h ../gtk/gtkmm/actionable.h ../gtk/gtkmm/actionbar.h ../gtk/gtkmm/actiongroup.h ../gtk/gtkmm/activatable.h ../gtk/gtkmm/adjustment.h ../gtk/gtkmm/appchooser.h ../gtk/gtkmm/appchooserbutton.h ../gtk/gtkmm/appchooserdialog.h ../gtk/gtkmm/appchooserwidget.h ../gtk/gtkmm/application.h ../gtk/gtkmm/applicationwindow.h ../gtk/gtkmm/aspectframe.h ../gtk/gtkmm/assistant.h ../gtk/gtkmm/bin.h ../gtk/gtkmm/border.h ../gtk/gtkmm/box.h ../gtk/gtkmm/buildable.h ../gtk/gtkmm/builder.h ../gtk/gtkmm/button.h ../gtk/gtkmm/buttonbox.h ../gtk/gtkmm/calendar.h ../gtk/gtkmm/cellarea.h ../gtk/gtkmm/cellareabox.h ../gtk/gtkmm/cellareacontext.h ../gtk/gtkmm/celleditable.h ../gtk/gtkmm/celllayout.h ../gtk/gtkmm/cellrenderer.h ../gtk/gtkmm/cellrendereraccel.h ../gtk/gtkmm/cellrenderercombo.h ../gtk/gtkmm/cellrendererpixbuf.h ../gtk/gtkmm/cellrendererprogress.h ../gtk/gtkmm/cellrendererspin.h ../gtk/gtkmm/cellrendererspinner.h ../gtk/gtkmm/cellrenderertext.h ../gtk/gtkmm/cellrenderertoggle.h ../gtk/gtkmm/cellview.h ../gtk/gtkmm/checkbutton.h ../gtk/gtkmm/checkmenuitem.h ../gtk/gtkmm/clipboard.h ../gtk/gtkmm/colorbutton.h ../gtk/gtkmm/colorchooser.h ../gtk/gtkmm/colorchooserdialog.h ../gtk/gtkmm/combobox.h ../gtk/gtkmm/comboboxtext.h ../gtk/gtkmm/container.h ../gtk/gtkmm/cssprovider.h ../gtk/gtkmm/csssection.h ../gtk/gtkmm/dialog.h ../gtk/gtkmm/drawingarea.h ../gtk/gtkmm/editable.h ../gtk/gtkmm/entry.h ../gtk/gtkmm/entrycompletion.h ../gtk/gtkmm/entrybuffer.h ../gtk/gtkmm/enums.h ../gtk/gtkmm/eventbox.h ../gtk/gtkmm/eventcontroller.h ../gtk/gtkmm/expander.h ../gtk/gtkmm/filechooser.h ../gtk/gtkmm/filechooserbutton.h ../gtk/gtkmm/filechooserdialog.h ../gtk/gtkmm/filechooserwidget.h ../gtk/gtkmm/filefilter.h ../gtk/gtkmm/fixed.h ../gtk/gtkmm/flowbox.h ../gtk/gtkmm/flowboxchild.h ../gtk/gtkmm/fontbutton.h ../gtk/gtkmm/fontchooser.h ../gtk/gtkmm/fontchooserdialog.h ../gtk/gtkmm/fontchooserwidget.h ../gtk/gtkmm/frame.h ../gtk/gtkmm/gesture.h ../gtk/gtkmm/gesturedrag.h ../gtk/gtkmm/gesturelongpress.h ../gtk/gtkmm/gesturemultipress.h ../gtk/gtkmm/gesturepan.h ../gtk/gtkmm/gesturerotate.h ../gtk/gtkmm/gesturesingle.h ../gtk/gtkmm/gestureswipe.h ../gtk/gtkmm/gesturezoom.h ../gtk/gtkmm/grid.h ../gtk/gtkmm/headerbar.h ../gtk/gtkmm/hvbox.h ../gtk/gtkmm/iconinfo.h ../gtk/gtkmm/icontheme.h ../gtk/gtkmm/iconview.h ../gtk/gtkmm/image.h ../gtk/gtkmm/infobar.h ../gtk/gtkmm/invisible.h ../gtk/gtkmm/label.h ../gtk/gtkmm/layout.h ../gtk/gtkmm/levelbar.h ../gtk/gtkmm/linkbutton.h ../gtk/gtkmm/listbox.h ../gtk/gtkmm/listboxrow.h ../gtk/gtkmm/liststore.h ../gtk/gtkmm/lockbutton.h ../gtk/gtkmm/main.h ../gtk/gtkmm/menu.h ../gtk/gtkmm/menubar.h ../gtk/gtkmm/menubutton.h ../gtk/gtkmm/menuitem.h ../gtk/gtkmm/menushell.h ../gtk/gtkmm/menutoolbutton.h ../gtk/gtkmm/messagedialog.h ../gtk/gtkmm/misc.h ../gtk/gtkmm/notebook.h ../gtk/gtkmm/offscreenwindow.h ../gtk/gtkmm/orientable.h ../gtk/gtkmm/overlay.h ../gtk/gtkmm/pagesetup.h ../gtk/gtkmm/paned.h ../gtk/gtkmm/papersize.h ../gtk/gtkmm/placessidebar.h ../gtk/gtkmm/popover.h ../gtk/gtkmm/printcontext.h ../gtk/gtkmm/printoperation.h ../gtk/gtkmm/printoperationpreview.h ../gtk/gtkmm/printsettings.h ../gtk/gtkmm/progressbar.h ../gtk/gtkmm/radioaction.h ../gtk/gtkmm/radiobutton.h ../gtk/gtkmm/radiomenuitem.h ../gtk/gtkmm/radiotoolbutton.h ../gtk/gtkmm/range.h ../gtk/gtkmm/recentaction.h ../gtk/gtkmm/recentchooser.h ../gtk/gtkmm/recentchooserdialog.h ../gtk/gtkmm/recentchoosermenu.h ../gtk/gtkmm/recentchooserwidget.h ../gtk/gtkmm/recentfilter.h ../gtk/gtkmm/recentinfo.h ../gtk/gtkmm/recentmanager.h ../gtk/gtkmm/requisition.h ../gtk/gtkmm/revealer.h ../gtk/gtkmm/scale.h ../gtk/gtkmm/scalebutton.h ../gtk/gtkmm/scrollable.h ../gtk/gtkmm/scrollbar.h ../gtk/gtkmm/scrolledwindow.h ../gtk/gtkmm/searchbar.h ../gtk/gtkmm/searchentry.h ../gtk/gtkmm/selectiondata.h ../gtk/gtkmm/separator.h ../gtk/gtkmm/separatormenuitem.h ../gtk/gtkmm/separatortoolitem.h ../gtk/gtkmm/settings.h ../gtk/gtkmm/sizegroup.h ../gtk/gtkmm/spinbutton.h ../gtk/gtkmm/spinner.h ../gtk/gtkmm/stack.h ../gtk/gtkmm/stackswitcher.h ../gtk/gtkmm/statusbar.h ../gtk/gtkmm/stylecontext.h ../gtk/gtkmm/styleprovider.h ../gtk/gtkmm/switch.h ../gtk/gtkmm/targetlist.h ../gtk/gtkmm/textattributes.h ../gtk/gtkmm/textbuffer.h ../gtk/gtkmm/textchildanchor.h ../gtk/gtkmm/textiter.h ../gtk/gtkmm/textmark.h ../gtk/gtkmm/texttag.h ../gtk/gtkmm/texttagtable.h ../gtk/gtkmm/textview.h ../gtk/gtkmm/toggleaction.h ../gtk/gtkmm/togglebutton.h ../gtk/gtkmm/toggletoolbutton.h ../gtk/gtkmm/toolbar.h ../gtk/gtkmm/toolbutton.h ../gtk/gtkmm/toolitem.h ../gtk/gtkmm/toolitemgroup.h ../gtk/gtkmm/toolpalette.h ../gtk/gtkmm/toolshell.h ../gtk/gtkmm/tooltip.h ../gtk/gtkmm/treedragdest.h ../gtk/gtkmm/treedragsource.h ../gtk/gtkmm/treeiter.h ../gtk/gtkmm/treemodel.h ../gtk/gtkmm/treemodelfilter.h ../gtk/gtkmm/treemodelsort.h ../gtk/gtkmm/treepath.h ../gtk/gtkmm/treerowreference.h ../gtk/gtkmm/treeselection.h ../gtk/gtkmm/treesortable.h ../gtk/gtkmm/treestore.h ../gtk/gtkmm/treeview.h ../gtk/gtkmm/treeviewcolumn.h ../gtk/gtkmm/uimanager.h ../gtk/gtkmm/viewport.h ../gtk/gtkmm/volumebutton.h ../gtk/gtkmm/widget.h ../gtk/gtkmm/widgetpath.h ../gtk/gtkmm/window.h ../gtk/gtkmm/pagesetupunixdialog.h ../gtk/gtkmm/printer.h ../gtk/gtkmm/printjob.h ../gtk/gtkmm/printunixdialog.h ../gtk/gtkmm/plug.h ../gtk/gtkmm/socket.h ../gtk/gtkmm/alignment.h ../gtk/gtkmm/arrow.h ../gtk/gtkmm/colorselection.h ../gtk/gtkmm/fontselection.h ../gtk/gtkmm/handlebox.h ../gtk/gtkmm/hvbuttonbox.h ../gtk/gtkmm/hvpaned.h ../gtk/gtkmm/hvscale.h ../gtk/gtkmm/hvscrollbar.h ../gtk/gtkmm/hvseparator.h ../gtk/gtkmm/iconfactory.h ../gtk/gtkmm/iconset.h ../gtk/gtkmm/iconsource.h ../gtk/gtkmm/imagemenuitem.h ../gtk/gtkmm/numerableicon.h ../gtk/gtkmm/statusicon.h ../gtk/gtkmm/stockitem.h ../gtk/gtkmm/table.h ../gtk/gtkmm/tearoffmenuitem.h ../gtk/gtkmm/accelkey.h ../gtk/gtkmm/accelmap.h ../gtk/gtkmm/base.h ../gtk/gtkmm/border.h ../gtk/gtkmm/cellrenderer_generation.h ../gtk/gtkmm/childpropertyproxy.h ../gtk/gtkmm/childpropertyproxy_base.h ../gtk/gtkmm/listviewtext.h ../gtk/gtkmm/object.h ../gtk/gtkmm/radiobuttongroup.h ../gtk/gtkmm/selectiondata_private.h ../gtk/gtkmm/styleproperty.h ../gtk/gtkmm/targetentry.h ../gtk/gtkmm/treemodelcolumn.h ../gtk/gtkmm/treeview_private.h ../gtk/gtkmm/stock.h ../gtk/gtkmm/stockid.h ../gtk/gtkmm.h ) | MMDOCTOOLDIR="../docs" "/path/to/doxygen" -

On 2014-12-16 02:02:49 +0000, Ting-Wei Lan wrote:

(In reply to comment # 5)

Thanks for the details. Unfortunately my Linux distro is too old to resolve all
build dependencies for the latest greatest version of gtkmm.

Build dependencies can be resolved by installing JHBuild (https://git.gnome.org/browse/jhbuild) and running `jhbuild build gtkmm'.

On 2014-12-16 21:00:11 +0000, Dimitri van Heesch wrote:

Seems to be truely impossible for me to get it to build even with jhbuild :-(
So I'm afraid I need more help. Can you send me the whole thing pre-build? Or
otherwise run valgrind on doxygen for me and send me the output of that?

On 2014-12-17 10:05:14 +0000, Ting-Wei Lan wrote:

(In reply to comment # 8)

Seems to be truely impossible for me to get it to build even with jhbuild :-(

Do you mean that there are system dependencies which cannot be satisfied?

So I'm afraid I need more help. Can you send me the whole thing pre-build? Or
otherwise run valgrind on doxygen for me and send me the output of that?

I can run valgrind and attach the output later.

On 2014-12-17 11:32:11 +0000, Ting-Wei Lan wrote:

Created attachment 292887
Doxygen valgrind log

On 2014-12-17 14:02:58 +0000, Ting-Wei Lan wrote:

After I rebuild gtkmm and all its dependencies (32 other packages), doxygen doesn't crash now.

On 2014-12-17 19:19:44 +0000, Dimitri van Heesch wrote:

Hmm, interesting turn of events.

Looking at your valgrind log I did find a potential issue that could be triggered by a tag file with some unexpected content. This may also explain why updating all dependencies (and thus also the tag files that doxygen imports) could make the problem go away.

Here is the commit:
SHA: 050fce2

Let me know if you still see this or similar problems with the patch included.

On 2014-12-19 14:47:11 +0000, Ting-Wei Lan wrote:

Thanks, the problem is fixed now. When will we get a new release?

On 2014-12-25 16:02:51 +0000, Dimitri van Heesch wrote:

This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.8.9. Please verify if this is indeed the case. Reopen the
bug if you think it is not fixed and please include any additional information
that you think can be relevant (preferrably in the form of a self-contained example).

@doxygen doxygen closed this Jul 2, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment