Debugging/ru: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 9: Line 9:
;-l: С "l" опцией FreeCAD записывает дополнительную информацию в лог-файл.
;-l: С "l" опцией FreeCAD записывает дополнительную информацию в лог-файл.


These are the currently recognized options in FreeCAD 0.15:

Generic options:
-v [ --version ] Prints version string
-h [ --help ] Prints help message
-c [ --console ] Starts in console mode
--response-file arg Can be specified with '@name', too

Configuration:
-l [ --write-log ] Writes a log file to:
/home/graphos/.FreeCAD/FreeCAD.log
--log-file arg Unlike to --write-log this allows to log to an
arbitrary file
-u [ --user-cfg ] arg User config file to load/save user settings
-s [ --system-cfg ] arg Systen config file to load/save system settings
-t [ --run-test ] arg Test level
-M [ --module-path ] arg Additional module paths
-P [ --python-path ] arg Additional python paths


== Generating a Backtrace ==
== Generating a Backtrace ==
Line 23: Line 41:
Enter the following in your terminal window:
Enter the following in your terminal window:
<pre>
<pre>
cd FreeCAD/bin
$ cd FreeCAD/bin
gdb FreeCAD
$ gdb FreeCAD
</pre>
handle SIG33 noprint nostop
GNUdebugger will output some initializing information. The (gdb) shows GNUDebugger is running in the terminal, now input:
run
<pre>
(gdb) handle SIG33 noprint nostop
(gdb) run
</pre>
FreeCAD will now start up. Perform the steps that cause FreeCAD to crash or freeze, then enter in the terminal window:
<pre>
(gdb) bt
</pre>
</pre>
FreeCAD will now start up. Perform the steps that cause FreeCAD to crash, then enter 'bt' in your terminal window. This will generate a lengthy listing of exactly what the program was doing when it crash. Include this with your problem report.
This will generate a lengthy listing of exactly what the program was doing when it crashed or froze. Include this with your problem report.


== Python debugging ==
== Python Debugging ==
Here is an example of using winpdb inside FreeCAD:
Here is an example of using winpdb inside FreeCAD:



Revision as of 17:38, 23 November 2014

Певые испытания

Перед тем как пройти через боль от процесса отладки , используйте набор для тестирования(тестовый модуль), чтобы проверить будут ли работать стандартные тесты должным образом. Если нет, то возможно дело, поломанной(нарушенной) установке.

командная строка

Отладка FreeCAD поддерживает несколько внутренних механизмов. Версия FreeCAD без графического режима предоставляет варианты поддержки отладки:

-v
С "v" опцией FreeCAD дает более подробный вывод
-l
С "l" опцией FreeCAD записывает дополнительную информацию в лог-файл.

These are the currently recognized options in FreeCAD 0.15:

Generic options:

 -v [ --version ]      Prints version string
 -h [ --help ]         Prints help message
 -c [ --console ]      Starts in console mode
 --response-file arg   Can be specified with '@name', too

Configuration:

 -l [ --write-log ]       Writes a log file to:
                          /home/graphos/.FreeCAD/FreeCAD.log
 --log-file arg           Unlike to --write-log this allows to log to an 
                          arbitrary file
 -u [ --user-cfg ] arg    User config file to load/save user settings
 -s [ --system-cfg ] arg  Systen config file to load/save system settings
 -t [ --run-test ] arg    Test level
 -M [ --module-path ] arg Additional module paths
 -P [ --python-path ] arg Additional python paths

Generating a Backtrace

If you are running a version of FreeCAD from the bleeding edge of the development curve, it may "crash". You can help solve such problems by providing the developers with a "backtrace". To do this, you need to be running a "debug build" of the software. "Debug build" is a parameter that is set at compile time, so you'll either need to compile FreeCAD yourself, or obtain a pre-compiled "debug" version.

For Linux

Prerequisites:

  • software package gdb installed
  • a debug build of FreeCAD
  • a FreeCAD model that causes a crash

Steps: Enter the following in your terminal window:

$ cd FreeCAD/bin
$ gdb FreeCAD

GNUdebugger will output some initializing information. The (gdb) shows GNUDebugger is running in the terminal, now input:

(gdb) handle SIG33 noprint nostop
(gdb) run

FreeCAD will now start up. Perform the steps that cause FreeCAD to crash or freeze, then enter in the terminal window:

(gdb) bt

This will generate a lengthy listing of exactly what the program was doing when it crashed or froze. Include this with your problem report.

Python Debugging

Here is an example of using winpdb inside FreeCAD:

  1. Run winpdb and set the password (e.g. test)
  2. Create a Python file with this content
 import rpdb2
 rpdb2.start_embedded_debugger("test")
 import FreeCAD
 import Part
 import Draft
 print "hello"
 print "hello"
 import Draft
 points=[FreeCAD.Vector(-3.0,-1.0,0.0),FreeCAD.Vector(-2.0,0.0,0.0)]
 Draft.makeWire(points,closed=False,face=False,support=None)
  1. Start FreeCAD and load the above file into FreeCAD
  2. Press F6 to execute it
  3. Now FreeCAD will become unresponsive because the Python debugger is waiting
  4. Switch to the Windpdb GUI and click on "Attach". After a few seconds an item "<Input>" appears where you have to double-click
  5. Now the currently executed script appears in Winpdb.
  6. Set a break at the last line and press F5
  7. Now press F7 to step into the Python code of Draft.makeWire
Module Creation/ru
Testing/ru