调试程序往往比编写程序更浪费时间,正如一些有经验的程序员所说,软件的开发应该包括20%的程序编写时间和80%的Debug时间。并且调试程序比编写程序要难2倍。编写巧妙的程序并不一定调试方便。
程序的调试有很多方法,比如最常见的VC之类的IDE都提供加断点,逐步执行,逐段执行的功能。但是这只能针对程序某个微小的片段,对于前期bug的范围的界定并不是很方便。况且对于不满IDE的臃肿,身陷Vim, notepad++, Editplus之类的编辑器之中,我们需要找到更加高效的程序调试和测试方法。
在程序执行的关键点打印Log是一个非常高效的方法,如何打印log进行程序调试呢? 以PHP程序开发为例,需要2个步骤:
1. PHP函数中两个关键的打印变量的方法
print_r var_dump
所以我们可以在关键的地方打印需要的变量。
2. 收集我们在程序中打印的变量
我们可以把程序执行过程中打印的变量逐条写到文本文件里。在程序执行完毕之后进行分析,查找Bug,修正程序。
PHP中打印时间,和变量的程序片段:
function file_log($message) {
global $file_log_location;
ob_start();
echo date("Y-m-d H:i:s \t", time());
print_r($message);
echo "\n";
$var = ob_get_contents();
ob_end_clean();
$open=@fopen($file_log_location,"a");
@fwrite($open,$var);
fclose($open);
}
应用此段程序还需要对log的存储位置$file_log_location
赋值。
在需要的地方插入此片段,执行PHP程序,就会得到所需信息。
但是假如是长时间运行的程序如何在程序执行的过程中就查看到log的信息?相信你已经想到了可以在shell中用
tail -f /var/debug.log
这样总可以看到程序吐出的最新的debug信息。
附件是Drupal中进行debug的一个小的module,做drupal开发的同学可以尝试一下。
Drupal debug module
虽然本文针对PHP开发所言,但是这种方法也适合python,java之类的动态语言的开发。
原文地址:http://blog.eood.cn/efficient_debugging_php_java_python
–EOF–
分享到:
相关推荐
总之,有效的程序调试和软件测试是保证软件质量的基础,VB提供的工具和方法为开发者提供了强大的支持,帮助他们发现和修复错误,确保软件的稳定性和可靠性。通过熟练掌握这些技巧,开发者能够更高效地调试代码,提升...
本文将从《匠人手记》中提炼出一系列实用的单片机程序调试技巧和方法,帮助读者更高效地进行单片机程序的调试。 #### 二、调试前的准备工作 1. **熟悉开发环境**:熟练掌握开发工具的基本操作如设置断点、单步执行...
编写单元测试和集成测试,确保各个模块的正确性和效率。 6. **性能优化**:利用C64x+ DSP的向量化指令和流水线特性进行性能优化。对于复杂的视频处理任务,可能需要考虑多核并行处理和任务调度。 7. **硬件接口...
### Android程序调试详解:解决程序排错的方法 在IT领域,尤其是移动应用开发中,Android程序的调试是一项至关重要的技能。对于开发者而言,能够高效地定位并修复代码中的错误不仅能够提升开发效率,还能确保应用的...
### Windows程序调试时快速记录日志的方法 #### 摘要 在软件开发过程中,调试是必不可少的一个环节。为了能够更好地定位程序中的错误或者异常行为,开发者常常会使用日志记录的方式来跟踪程序运行过程中的关键信息...
程序调试是指在程序开发过程中,通过对程序进行测试来查找并修复程序中存在的各种错误的过程。在Visual Basic (简称VB) 编程环境中,程序调试是一项非常重要的技能,它可以帮助开发者确保程序能够按照预期的功能正常...
程序调试包括识别和修复语法错误、逻辑错误以及运行时错误。语法错误分为两类:致命错误(error)和警告错误(warning)。致命错误会导致编译失败,而警告错误虽不影响编译,但可能导致运行时问题。 在不同的开发...
### 细谈VC程序调试的若干方法 #### 引言 在软件开发过程中,调试是一项至关重要的技能。它不仅能够帮助开发者找到并修正程序中的错误,还能提高代码质量和开发效率。Visual C++(简称VC++)作为一款广泛使用的C++...
本文介绍了一种基于Tornado集成开发环境的VxWorks应用程序编写和调试方法,以控制数码管显示为例,详细阐述了实验的全过程,包括建立交叉编译环境、配置目标服务器、编写下载工程和测试代码等步骤。 首先,交叉编译...
"程序调试工具"就是专门为这个目的设计的,它们提供了一系列高效的功能,使得调试过程更为便捷。这些工具通常具备多种特性,包括断点设置、步进执行、变量查看、调用栈分析、内存检查以及日志记录等,极大地提高了...
此外,采用持续集成的方法可以自动化测试和调试流程,从而提高调试的效率。 性能优化也是C++调试过程中的一个重要方面。在调试时,开发者不仅要关注程序的正确性,还要关注其运行效率。使用性能分析工具(如...
在LabVIEW环境下开发串口上位机程序,需要深入理解和掌握通信协议、数据传输机制、程序开发流程以及调试测试方法。 在LabVIEW中,串口上位机程序的开发通常从配置串口参数开始,包括波特率、数据位、停止位、校验位...
- **规定测试程序模板和其他设计标准**:使用统一的模板和标准,可以提高测试文档的质量和一致性。 - **从需求导出有效测试案例**:根据需求文档设计测试案例,确保覆盖所有重要的测试点。 - **将测试程序视为“活...
《程序调试羊皮卷》是一本专为程序员打造的调试技术宝典,旨在帮助开发者们提升在编程过程中解决错误和优化代码的能力。调试是软件开发不可或缺的一环,它不仅是找出并修复问题的关键步骤,更是提升代码质量和效率的...
当程序调试完成后,可以将个人的数据集导入系统中进行替换,以验证系统是否能够准确识别特定个体的人脸。 识别准确率作为评估人脸识别系统性能的重要指标,直接关系到系统在实际应用中的可用性。高准确率意味着系统...
### SAP程序调试技巧详解 #### 一、引言 在SAP系统开发中,调试是一项至关重要的技能。本文档旨在详细介绍一种特殊的调试方法——通过一个简单的文本文件来启动调试模式,这种方法是在博客文章中提到的第四种解决...
总之,“串口精灵调试助手测试程序”是串口通讯领域中的一款得力工具,其强大的调试功能和用户友好的界面,使得无论是初学者还是经验丰富的专业人士都能得心应手地进行串口通信测试。通过熟练掌握这款工具,用户能够...
以上是程序调试的一些核心概念,熟练掌握这些技巧将使开发者能够更高效地定位和修复代码中的问题,从而提高软件质量和开发效率。通过深入学习“02. 程序调试.zip”中的内容,你将有机会全面提升自己的调试能力。
本文将深入探讨程序调试的核心思想与实践方法,特别关注以Bug为中心的调试策略,通过具体实例、诊断技巧以及调试工具的应用,帮助读者提升编程效率和代码质量。 #### 一、调试思想:以Bug为中心 **1.1 Bug定位的...
在软件开发的过程中,调试是发现、...Qt框架提供的调试工具和方法涵盖了从基本的断点调试到高级的远程调试的广泛范围。熟练掌握这些工具和技巧,可以帮助开发者高效地诊断和修正程序中的错误,提升开发效率和产品质量。