usually, the terminal(-output) gives you a lot of useful information, both on the application as well as the desktop file. An example:
if I run my application from the terminal, typing the command in the terminal, the application starts.
However, if there is something wrong, you can expect an output like:
Traceback (most recent call last):
File "/home/jacob/Bureaublad/werkmap_2.0/uploaded_versions/2.1.2/32_en_ppa /qle-2.1.2/code/qle_quicklisteditor", line 4044, in <module>
File "/home/jacob/Bureaublad/werkmap_2.0/uploaded_versions/2.1.2/32_en_ppa /qle-2.1.2/code/qle_quicklisteditor", line 51, in __init__
AttributeError: 'MainWindow' object has no attribute 'load_sectons'
which gives you a lot of usefull information, even the line in your application that causes the error. (I messed it up on purpose)
The same with the desktop file, just open a terminal in the directory of the .desktop file and drag it on to the terminal. If you for example remove the
Exec= line from a .desktop file, the terminal will tell you it cannot find the command to execute.
To test if the application gives an error, just run what you put after the
The terminal output is usually very specific and useful in bug reports, like here.