Skip to content

#define crashes the HTML generator #19

@oxysoft

Description

@oxysoft

I believe this is the specific block of XML generated by Doxygen which is causing Sphinx/Breathe to crash

    <sectiondef kind="define">
      <memberdef kind="define" id="_color_replacement_setter_8cs_1ad10dd27d12fbd568f6ee8088b11e36fb" prot="public" static="no">
        <name>COLOR_REPLACEMENT_SAFTEYCHECKS</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="Assets/Scripts/Overworld/Rendering/ColorReplacementSetter.cs" line="1" column="9" bodyfile="Assets/Scripts/Overworld/Rendering/ColorReplacementSetter.cs" bodystart="1" bodyend="-1"/>
      </memberdef>
    </sectiondef>

Here is the log produced

# Platform:         win32; (Windows-10-10.0.19045-SP0)
# Sphinx version:   7.2.5
# Python version:   3.10.11 (CPython)
# Docutils version: 0.20.1
# Jinja2 version:   3.1.2
# Pygments version: 2.16.1

# Last messages:
#   Docs_rst_gen/file/_color_in_out_v_f_x_8cs
#   
#   �[2K
#   reading sources... [ 49%]
#   Docs_rst_gen/file/_color_replacement_profile_8cs
#   
#   �[2K
#   reading sources... [ 49%]
#   Docs_rst_gen/file/_color_replacement_setter_8cs
#   

# Loaded extensions:
#   sphinx.ext.mathjax (7.2.5)
#   alabaster (0.7.13)
#   sphinxcontrib.applehelp (1.0.7)
#   sphinxcontrib.devhelp (1.0.5)
#   sphinxcontrib.htmlhelp (2.0.4)
#   sphinxcontrib.serializinghtml (1.1.9)
#   sphinxcontrib.qthelp (1.0.6)
#   breathe (4.35.0)
#   sphinx_csharp (unknown version)
#   sphinx_tippy (0.4.1)
#   furo (2023.09.10)
#   sphinx_basic_ng (1.0.0.beta2)

# Traceback:
Traceback (most recent call last):
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\sphinx\cmd\build.py", line 298, in build_main
    app.build(args.force_all, args.filenames)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\sphinx\application.py", line 355, in build
    self.builder.build_update()
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\sphinx\builders\__init__.py", line 293, in build_update
    self.build(to_build,
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\sphinx\builders\__init__.py", line 313, in build
    updated_docnames = set(self.read())
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\sphinx\builders\__init__.py", line 420, in read
    self._read_serial(docnames)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\sphinx\builders\__init__.py", line 441, in _read_serial
    self.read_doc(docname)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\sphinx\builders\__init__.py", line 498, in read_doc
    publisher.publish()
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\docutils\core.py", line 234, in publish
    self.document = self.reader.read(self.source, self.parser,
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\sphinx\io.py", line 105, in read
    self.parse()
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\docutils\readers\__init__.py", line 76, in parse
    self.parser.parse(self.input, document)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\sphinx\parsers.py", line 81, in parse
    self.statemachine.run(inputlines, document, inliner=self.inliner)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\docutils\parsers\rst\states.py", line 169, in run
    results = StateMachineWS.run(self, input_lines, input_offset,
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\docutils\statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\docutils\statemachine.py", line 445, in check_line
    return method(match, context, next_state)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\docutils\parsers\rst\states.py", line 2785, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\docutils\parsers\rst\states.py", line 325, in section
    self.new_subsection(title, lineno, messages)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\docutils\parsers\rst\states.py", line 391, in new_subsection
    newabsoffset = self.nested_parse(
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\docutils\parsers\rst\states.py", line 279, in nested_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\docutils\parsers\rst\states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\docutils\statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\docutils\statemachine.py", line 445, in check_line
    return method(match, context, next_state)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\docutils\parsers\rst\states.py", line 2355, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\docutils\parsers\rst\states.py", line 2367, in explicit_construct
    return method(self, expmatch)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\docutils\parsers\rst\states.py", line 2104, in directive
    return self.run_directive(
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\docutils\parsers\rst\states.py", line 2154, in run_directive
    result = directive_instance.run()
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\breathe\directives\file.py", line 83, in run
    return self.handle_contents(file_, project_info)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\breathe\directives\file.py", line 53, in handle_contents
    node_list.extend(object_renderer.render(node_stack[0], context))
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\breathe\renderer\sphinxrenderer.py", line 2624, in render
    result = method(self, node)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\breathe\renderer\sphinxrenderer.py", line 1360, in visit_compounddef
    child_nodes = self.render(sectiondef)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\breathe\renderer\sphinxrenderer.py", line 2624, in render
    result = method(self, node)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\breathe\renderer\sphinxrenderer.py", line 1407, in visit_sectiondef
    node_list.extend(self.render_iterable(member_def))
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\breathe\renderer\sphinxrenderer.py", line 2634, in render_iterable
    output.extend(self.render(entry))
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\breathe\renderer\sphinxrenderer.py", line 2624, in render
    result = method(self, node)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\breathe\renderer\sphinxrenderer.py", line 2525, in dispatch_memberdef
    return self.visit_define(node)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\breathe\renderer\sphinxrenderer.py", line 2080, in visit_define
    return self.handle_declaration(node, declaration, declarator_callback=add_definition)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\breathe\renderer\sphinxrenderer.py", line 667, in handle_declaration
    nodes_ = self.run_directive(obj_type, declaration, content_callback, options)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\breathe\renderer\sphinxrenderer.py", line 596, in run_directive
    directive = DomainDirectiveFactory.create(self.context.domain, args)
  File "C:\Users\nuck\AppData\Local\Programs\Python\Python310\lib\site-packages\breathe\renderer\sphinxrenderer.py", line 331, in create
    cls, name = DomainDirectiveFactory.cs_classes[args[0]]
KeyError: 'define'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions