Jump to content

How to submit a good bug report


photo

Recommended Posts

Here you will find a few simple tips on how to make your bug report better. The more full information you provide, the faster we find the issue and fix it!

How to report a bug
1. Search the forum for the issue you encountered.

  • If there is a topic with the same bug and you can add any helpful details (for example, as to environment in which it occurs or hardware configuration), post a message in it.
  • If there are no topics on our forum that mention the issue you've encountered, create a new topic.

2. Always report one problem in each topic. This way, it's easier to keep track of the bugs and make sure none are left unanswered.

Minimal description
Minimal issue description should contain Reproduction steps.

  • What you expected or needed to happen
  • What you did in detailed step-by-step guide (see the example below)
    • Or alternatively a video or set of screenshots that will show the whole steps required to reproduce this behavior
  • What happened

For example:

Quote

NodeReferences are not saved when Apply button is hit in the editing mode:

  • Add a NodeReference.
  • Go to Nodes -> Reference and click Edit.
  • Change scale.
  • Hit Apply button.
Scale or any other changes are not saved.

Additional info
If it is needed for explanation - you can add to your post following items:

  • A video or screenshots that shows all the necessary steps
  • A log files (log_*.txt).
  • A call stack (in case of crashes)
  • A minimal test scene for reproduction.

But if you are 100% sure it's enough, you can simply share resources in question or at the very least, attach a screenshot (with a mark drawn to point out the problem).

See details on each of these points below.

Common log files locations

  • Engine: <Project_Dir>/bin/log_*.txt
  • Editor: <Project_Dir>/bin/editor_log*.txt
  • SDK Browser 2.x (actual):
    • Windows: %USERPROFILE%\AppData\Local\Unigine\browser\browser_*.log
    • Linux:  ~/.config/unigine/browser/browser_*.log
  • SDK Browser 1.x (legacy):
    • Windows: %USERPROFILE%\AppData\Local\UNIGINE_SDK_Browser\browser*.log
    • Linux: ~/.local/share/UIGINE_SDK_Browser/browser*.log


Engine log.txt file created on each launch of your application and stored in the project directory and older log files are being renamed to log_1.txt, log_2.txt and so on. Up to 4 log files can exists simultaneously. Log file by default located in:

<Your_Project_Dir>/bin/log_*.txt
<Your_Project_Dir>/bin/editor_log_*.txt

To get maximum out of the log file, here is a couple of hints:

  • Run debug builds (unless issue is only can be reproduced in release). In this case log file will contain detailed error messages (only valid for UnigineScript-based applications).
  • Attach multiple log files to your message (since they may contain various error messages from time to time).

 
Call Stack
Sometimes you may observe an engine crashes. If you 100% sure that your code is valid and the engine itself is working incorrectly we may ask for additional information.

A call stack allows to view the function or procedure calls that led to a crash. You can provide it:

  • In a text format (preferable)
  • As a screenshot of call stack window.

Windows

  1. Run your application with debug engine (<your_app_name_x64d.exe)
  2. In Visual Studio go to Debug -> Attach to Process (Ctrl + Alt + P)
  3. Select your application in Available processes list and hit Attach
  4. Crash your application
  5. Copy the callstack contents and attach it to your report

Linux

  1. Please ensure you have packages with debug symbols installed.
  2. Make sure the GNU Debugger is installed (all terminal commands are for debian-like systems):
    sudo apt-get install gdb

     

  3. Start the debug version of engine under control of gdb:
     

    gdb <main_x64d> 2>&1 | tee ~/gdb-<program>.txt 
    (gdb) handle SIG33 pass nostop noprint 
    (gdb) set pagination 0 
    (gdb) run <arguments, if any> 

    If the engine must run as root, use sudo gdb instead of just gdb above.

  4. The program will start. Perform any actions necessary to reproduce the crash. If the program hangs but doesn't crash you can press CTRL+C in gdb while the program is frozen and then continue with the next step.

  5.  Retrieve a backtrace:

    (gdb) backtrace full 
    (gdb) info registers 
    (gdb) x/16i $pc 
    (gdb) thread apply all backtrace 
    (gdb) quit

     

  6. Attach the complete output from GDB, contained in gdb-<program>.txt to your bug report. You will find the file in your home directory /home/<username>.

Minimal test scene
A minimal test scene is a project stripped down to essentials that cause a bug. There is no need to send us bin directory, just data and source (if required).

To make the scene exporting process easier you can use built-in Editor feature that allows you to export specific files from the Asset Browser as a separate package. You can export your world, content, code and other required files into a separate standalone package, that can be later imported into Editor. In that case you only need to send us your single *.upackage file that will contain all the required assets for reproduction.

Sometimes it's easier to create a new project and modify it slightly to get the minimal reproduction scene on default content.

For large and NDA test scenes you can use our secure FTP server to upload the files:

Link to comment
×
×
  • Create New...