在你经历痛苦的调试过程之前请使用 测试框架 来检查标准测试是否正常工作。如果它们未运行完成, 则可能是安装中断。
FreeCAD 的 "调试" 是由一些内部机制支持的。FreeCAD 的命令行版本提供了一些用于调试支持的选项。
以下是 FreeCAD 0.15 中能识别的选项:
一般性选项:
-v [ --version ] 打印版本字符串 -h [ --help ] 打印帮助信息 -c [ --console ] 以控制台模式启动 --response-file arg 也能使用 '@name' 指定
配置:
-l [ --write-log ] 输出 log 文件到: $HOME/.FreeCAD/FreeCAD.log --log-file arg 不像 --write-log,这个命令允许记录到任意文件 -u [ --user-cfg ] arg 用于加载/保存用户设置的用户配置文件 -s [ --system-cfg ] arg 用于加载/保存系统设置的用户配置文件 -t [ --run-test ] arg 测试等级 -M [ --module-path ] arg 额外的模块路径 -P [ --python-path ] arg 额外的python路径
如果你运行 FreeCAD 开发中的出血边缘(bleeding edge)版本, 则可能会发生 "崩溃 "。 您可以通过向开发人员提供 "回溯 " 来帮助解决此类问题。 为此, 您需要运行软件的 "调试版本 "。 "调试生成 " 是在编译时设置的参数, 因此您需要自己编译 FreeCAD, 或者获取编译 "调试 " 版本。
Linux 调试 ---->
必要条件:
步骤: 在终端窗口中输入以下内容:
$ 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 现在就要启动。执行导致 FreeCAD 崩溃或冻结的步骤, 然后在终端窗口中输入:
(gdb) bt
这将生成一个冗长的列表, 确切地列出程序在崩溃或冻结时正在执行的工作。将此内容包括在问题报告中。
MacOSX 调试 ---->
必要条件:
步骤: 在终端窗口中输入以下内容:
$ cd FreeCAD/bin $ lldb FreeCADLLDB 将输出一些初始化信息。(lldb) 显示调试器正在终端中运行, 现在输入:
(lldb) run
FreeCAD 现在就要启动。执行导致 FreeCAD 崩溃或冻结的步骤, 然后在终端窗口中输入:
(lldb) bt
这将生成一个冗长的列表, 确切地列出程序在崩溃或冻结时正在执行的工作。将此内容包括在问题报告中。
这里是一个在 FreeCAD 中使用 winpdb 的例子:
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)