
.. rst-class:: lead
    
    You can send an issue report right from the DVT GUI using the **Report an Issue** dialog.

Along with a problem description, we often need logs and system information in order to reproduce a problematic behavior and fix it.

Go to menu :menuselection:`Help --> DVT Quick Help --> Report an Issue` or simply click the toolbar button:

.. figure:: ../../images/common/report-an-issue-toolbar-icon.png

.. figure:: ../../images/common/report-an-issue-menu-icon.png

Fill in the identification data (will be remembered for future reports) and issue description.

Attach screenshots, code snippets or any other files you consider helpful in reproducing the problem.

By default various application logs and diagnostic files are attached.

You can preview any attachment using the magnifier icon.

.. figure:: ../../images/common/report-an-issue-dialog-icon.png

When you click :guilabel:`Send`, an e-mail is sent to ``support@amiq.com`` with your own address in CC.

You can also save the issue report as a zip archive, and send it manually to ``support@amiq.com`` (for example if you don't have Internet connectivity on the machine where DVT runs).

The most useful debug information when **dealing with performance issues** is a JVM thread dump.
Most likely this will help us pinpoint the problem and provide a fast solution. 

How to generate a thread dump from within DVT Eclipse?
------------------------------------------------------

To generate a thread dump from within DVT go to :menuselection:`Help --> DVT Quick Help --> Thread Dump Collector`.

Start the collector, then do the operation that causes the performance issue and afterwards stop the process from the same dialog.

.. figure:: ../../images/common/report-an-issue-thread-dump-dialog.png

You can also use the **Start Thread Dump Collector** and **Stop Thread Dump Collector** shortcuts from the Quick Access bar (:kbd:`Ctrl+3`).

The thread dump is generated in the directory of the currently selected DVT project.

How to generate a thread dump from outside DVT Eclipse?
-------------------------------------------------------

Assuming the DVT GUI is frozen, you can still generate a thread dump by running a script.
Open a terminal, log into the machine where DVT runs and run the following command:

.. code-block::

 $DVT_HOME/bin/dvt_debug_utils.sh -workspace <dvt_workspace_location> -thread_dump -nof_kills 60 -tbs 500ms

The thread dump file is generated in the <dvt_workspace_location>.

How to generate a thread dump for Verissimo & Specador running in batch mode?
-----------------------------------------------------------------------------

Open a terminal and log into the machine where Verissimo/Specador runs.
Identify the PID of the Verissimo/Specador java process, for example:

.. code-block:: 

 ps aux | grep ro.amiq.dvt.main.specador.SpecadorMain
 ps aux | grep ro.amiq.vlogdt.main.VerissimoMain

Run the following command:

.. code-block:: 

 $DVT_HOME/bin/dvt_debug_utils.sh -pid <PID> -thread_dump -nof_kills 60 -tbs 500ms

The thread dump is generated in the current directory.

.. note::

 Thread dumps can be automatically generated for specific named actions that the tool performs using the **+dvt_profile+<name>[ +<name>][ +<period_ms>]** build configuration directive, where **<name>** is one of: VLOG_RI, VLOG_RC, VLOG_RD, VLOG_US, VLOG_EP, VLOG_CP, VHDL_RU, VHDL_RT, VHDL_RD, VHDL_US, VHDL_USBD, VHDL_CP, ELAB, UNEL, ALL.
