书籍详情
Perl程序调试实用手册
作者:(美)Martim Brown著;吕俊文,宋黎松等译
出版社:电子工业出版社
出版时间:2001-01-01
ISBN:9787505364561
定价:¥45.00
购买这本书可以去
内容简介
本书作为有关Perl调试的专著,是一本非常难得的好书。书中深入地分析了开发不包含逻辑和语法错误的代码技巧以及调试程序的基本原理,介绍了开发和调试命令行代码的过程和方法,说明了关于定位、分析及修复编程错误的方法,介绍了开发Perl程序时所遇到的特殊调试问题。本书是所有软件工程师的必读书籍,也可作为大专院校师生的参考资料。作为一个软件工程师,如果你仍然在为不能捉尽自己开发的Perl应用程序中的“虫子”而苦恼不已,那么请你认真地阅读这本书。只要你确实掌握了书中所论述的思想、策略、技术和方法,那么开发无错误的Perl应用程序就是既可望也可及的事了。
作者简介
暂缺《Perl程序调试实用手册》作者简介
目录
第一部分 Perl调试概述
第1章 绪论
1.1 漏洞类型
1.1.1 输入漏洞
1.1.2 逻辑漏洞
1.1.3 执行漏洞
1.2 预防漏洞
1.2.1 程序设计
1.2.2 编辑器
1.2.3 格式编排
1.2.4 注释
1.3 代码修订
第二部分 Perl的逻辑和语法
第2章 基本的Perl解析规则和陷阱
2.1 执行过程
2.1.1 体系结构
2.1.2 内部对象
2.1.3 翻译器
2.1.4 操作码
2.1.5 编译
2.1.6 执行
2.1.7 执行总结
2.2 语法和解析规则
2.2.1 基本语法
2.3 注释
2.3.1 组件标识
2.3.2 优先级
2.3.3 空词
2.3.4 上下文
2.3.5 逻辑值
第3章 常见的变量陷阱
3.1 创建/使用变量
3.1.1 标量
3.1.2 数组
3.1.3 哈希表
3.1.4 列表
3.1.5 文件句柄
3.1.6 使用defined
3.1.7 缺省值
3.2 变量范围
3.2.1 my的作用范围
3.2.2 local的作用范围
3.2.3 our的作用范围
3.3 特殊变量
3.3.1 @_数组
3.3.2 $_标量
3.3.3 标量$a和$b
3.3.4 $1…$9和其他Regex变量
3.4 引用
3.4.1 标量
3.4.2 数组
3.4.3 哈希表
3.4.4 函数
3.4.5 Globs
3.4.6 嵌套结构
3.4.7 引用类型
3.5 对象
3.6 变量,引号和插值
3.6.1 引号操作符
3.6.2 ‘here’文档
3.6.3 变量插值和字符串插值
第4章 语句陷阱和函数陷阱
4.1 测试和比较
4.2 循环
4.2.1 使用while
4.2.2 do{ }While循环
4.2.3 for和foreach循环
4.2.4 控制语句
4.3 正则表达式陷阱
4.4 函数陷阱
4.4.1 alarm
4.4.2 binmode
4.4.3 chdir
4.4.4 chomp
4.4.5 chop
4.4.6 chown
4.4.7 crypt
4.4.8 delete
4.4.9 each
4.4.10 eval
4.4.11 exec
4.4.12 exists
4.4.13 exit
4.4.14 fork
4.4.15 gmtime/localtime
4.4.16 Join
4.4.17 keys/values
4.4.18 map
4.4.19 Open
4.4.20 print
4.4.21 sprintf
4.4.22 ref
4.4.23 scalar
4.4.24 seek
4.4.25 select(filehandle)
4.4.26 select(files)
4.4.27 shift、unshift/pop和push
第5章 程序设计
5.1 分离
5.1.1 开发良好的子程序
5.1.2 解析参数
5.1.3 开发良好的模块
5.1.4 开发良好的类
5.2 节省时间的技巧
5.2.1 原型
5.2.2 调度表
5.2.3 引用
5.3 注释和文档
5.3.1 编写注释
5.3.2 编制文档
第6章 语言/平台移植指南
6.1 语言移植陷阱
6.1.1 和awk/gawk之间的差异
6.1.2 C陷阱
6.1.3 sed陷阱
6.1.4 emacs陷阱
6.1.5 shell脚本陷阱
6.1.6 Python陷阱
6.2 平台移植陷阱
6.2.1 支持的函数
6.2.2 常量的兼容性
6.2.3 执行环境
6.2.4 错误
6.2.5 行结束符
6.2.6 字符集
6.2.7 数据差异
6.2.8 文件和路径名
6.2.9 模块
6.2.10 性能和资源
6.2.11 平台移植技巧
第三部分 捕获错误
第7章 捕获基本错误
7.1 为什么检查错误?
7.2 为脚本添加错误检查
7.2.1 使用if
7.2.2 使用unless
7.2.3 使用条件操作符
7.2.4 使用简化逻辑
7.2.5 错误检查准则
7.2.6 错误检查预演
7.3 需要检查的内容
7.4 不需要检查的内容
7.4.1 不要检查无关紧要的内容
7.4.2 用户输入
7.4.3 替换/直译
7.5 何时停止检查
7.5.1 不要检查两次
7.5.2 函数、返回值和嵌套
7.6 错误消息和错误号
7.7 在脚本内报告错误
7.7.1 Warn函数
7.7.2 Die函数
7.7.3 Propagation和eval
7.7.4 定向和标记
7.8 在模块内报告错误
7.8.1 Carp函数
7.8.2 Cluck函数
7.8.3 Croak函数
7.8.4 Confess函数
7.9 在GUIs和Web应用程序内报告错误
7.9.1 Tk对话
7.9.2 Web错误报告
第8章 使用编译选项和警告
8.1 警告
8.1.1 $^W变量
8.1.2 早期的warning编译选项
8.1.3 Perl 5.6的词法警告
8.2 strict编译选项
8.2.1 vars选项
8.2.2 refs选项
8.2.3 subs选项
8.3 Perl的其他编译选项
8.3.1 autouse
8.3.2 base
8.3.3 blib
8.3.4 常量
8.3.5 diagnostics
8.3.6 fields
8.3.7 integer
8.3.8 less
8.3.9 lib
8.3.10 ops
8.3.11 re
8.3.12 sigtrap
8.3.13 subs
8.3.14 vars
第9章 人工调试技术
9.1 使用print
9.1.1 引用信息
9.1.2 跟踪执行
9.1.3 使用调试选项
9.2 使用caller
9.3 使用eval
9.4 信号
9.4.1 作为异常的信号
9.4.2 _WARN_信号和_DIE_信号
9.5 写日志
9.6 重定向STDOUT/SIDERR
9.6.1 使用日志函数
9.6.2 向syslog报告
9.6.3 向Windows NT/2000 Event log报告
第10章 Perl调试器
10.1 使用调试器
10.1.1 监视
10.1.2 单步方式
10.1.3 断点
10.2 Pert调试器
10.2.1 用户界面
10.2.2 调试器命令
10.2.3 使用非交互模式
10.2.4 定制
10.2.5 可供选择的两种界面
10.3 ActivePerl调试器
10.3.1 调试器界面
10.3.2 Registers(寄存器)
10.3.3 Proximity面板
10.3.4 Watches面板
10.3.5 执行语句
10.3.6 调试工具
10.3.7 书签
10.3.8 使用工具
10.4 命令行调试
10.4.1 标记和解析
10.4.2 Stack Snapshots
10.4.3 上下文(循环)栈处理
10.4.4 跟踪执行
10.4.5 方法和重载方案
10.4.6 字符串/数值转换
10.4.7 显示预处理程序(适用于CPP)
10.4.8 内存分配
10.4.9 格式处理
10.4.10 正则表达式
10.4.11 语法树
10.4.12 脏检查
10.4.13 内存泄漏
10.4.14 哈希表卸出
10.4.15 分配中间结果暂存器
10.4.16 清除
10.4.17 线程同步
10.5 调试内存使用
10.5.1 真正含义
第四部分 优化代码
第11章 手工优化
11.1 跟踪执行
11.2 发现资源下降
11.2.1 提高速度
11.2.2 减少内存
第12章 自动优化
12.1 Perl剖析器
12.1.1 脚本剖析实例
12.1.2 一次命中剖析
12.1.3 剖析的备选方案
12.2 使用编译器
12.2.1 后端
12.2.2 perlcc前端
12.2.3 解释代码和编译代码之间的区别
12.3 比较脚本和可执行程序的速度
12.3.1 测试
12.3.2 归纳结论
第五部分 测试代码
第13章 测试方法
13.1 测试装具模块的角色
13.2 测试策略
13.2.1 测试示例
13.2.2 测试内容
13.2.3 界限和范围
13.3 建立测试装具模块
13.3.1 使用Test模块
13.3.2 使用Test::Harness
13.3.3 CGI Harness
第14章 中断代码
14.1 磁盘空间
14.2 CPU时间
14.3 环境变量
14.4 安全和权限
14.5 脏数据
14.5.1 使用脏模式
14.5.2 检查数据和澄清数据
14.6 Web服务器
14.6.1 Web环境
14.6.2 网络通信
14.6.3 外部程序
14.6.4 用户安全性
14.6.5 超时
14.7 Web数据
14.8 多重执行
第六部分 附录
附录A 错误交叉参考
第1章 绪论
1.1 漏洞类型
1.1.1 输入漏洞
1.1.2 逻辑漏洞
1.1.3 执行漏洞
1.2 预防漏洞
1.2.1 程序设计
1.2.2 编辑器
1.2.3 格式编排
1.2.4 注释
1.3 代码修订
第二部分 Perl的逻辑和语法
第2章 基本的Perl解析规则和陷阱
2.1 执行过程
2.1.1 体系结构
2.1.2 内部对象
2.1.3 翻译器
2.1.4 操作码
2.1.5 编译
2.1.6 执行
2.1.7 执行总结
2.2 语法和解析规则
2.2.1 基本语法
2.3 注释
2.3.1 组件标识
2.3.2 优先级
2.3.3 空词
2.3.4 上下文
2.3.5 逻辑值
第3章 常见的变量陷阱
3.1 创建/使用变量
3.1.1 标量
3.1.2 数组
3.1.3 哈希表
3.1.4 列表
3.1.5 文件句柄
3.1.6 使用defined
3.1.7 缺省值
3.2 变量范围
3.2.1 my的作用范围
3.2.2 local的作用范围
3.2.3 our的作用范围
3.3 特殊变量
3.3.1 @_数组
3.3.2 $_标量
3.3.3 标量$a和$b
3.3.4 $1…$9和其他Regex变量
3.4 引用
3.4.1 标量
3.4.2 数组
3.4.3 哈希表
3.4.4 函数
3.4.5 Globs
3.4.6 嵌套结构
3.4.7 引用类型
3.5 对象
3.6 变量,引号和插值
3.6.1 引号操作符
3.6.2 ‘here’文档
3.6.3 变量插值和字符串插值
第4章 语句陷阱和函数陷阱
4.1 测试和比较
4.2 循环
4.2.1 使用while
4.2.2 do{ }While循环
4.2.3 for和foreach循环
4.2.4 控制语句
4.3 正则表达式陷阱
4.4 函数陷阱
4.4.1 alarm
4.4.2 binmode
4.4.3 chdir
4.4.4 chomp
4.4.5 chop
4.4.6 chown
4.4.7 crypt
4.4.8 delete
4.4.9 each
4.4.10 eval
4.4.11 exec
4.4.12 exists
4.4.13 exit
4.4.14 fork
4.4.15 gmtime/localtime
4.4.16 Join
4.4.17 keys/values
4.4.18 map
4.4.19 Open
4.4.20 print
4.4.21 sprintf
4.4.22 ref
4.4.23 scalar
4.4.24 seek
4.4.25 select(filehandle)
4.4.26 select(files)
4.4.27 shift、unshift/pop和push
第5章 程序设计
5.1 分离
5.1.1 开发良好的子程序
5.1.2 解析参数
5.1.3 开发良好的模块
5.1.4 开发良好的类
5.2 节省时间的技巧
5.2.1 原型
5.2.2 调度表
5.2.3 引用
5.3 注释和文档
5.3.1 编写注释
5.3.2 编制文档
第6章 语言/平台移植指南
6.1 语言移植陷阱
6.1.1 和awk/gawk之间的差异
6.1.2 C陷阱
6.1.3 sed陷阱
6.1.4 emacs陷阱
6.1.5 shell脚本陷阱
6.1.6 Python陷阱
6.2 平台移植陷阱
6.2.1 支持的函数
6.2.2 常量的兼容性
6.2.3 执行环境
6.2.4 错误
6.2.5 行结束符
6.2.6 字符集
6.2.7 数据差异
6.2.8 文件和路径名
6.2.9 模块
6.2.10 性能和资源
6.2.11 平台移植技巧
第三部分 捕获错误
第7章 捕获基本错误
7.1 为什么检查错误?
7.2 为脚本添加错误检查
7.2.1 使用if
7.2.2 使用unless
7.2.3 使用条件操作符
7.2.4 使用简化逻辑
7.2.5 错误检查准则
7.2.6 错误检查预演
7.3 需要检查的内容
7.4 不需要检查的内容
7.4.1 不要检查无关紧要的内容
7.4.2 用户输入
7.4.3 替换/直译
7.5 何时停止检查
7.5.1 不要检查两次
7.5.2 函数、返回值和嵌套
7.6 错误消息和错误号
7.7 在脚本内报告错误
7.7.1 Warn函数
7.7.2 Die函数
7.7.3 Propagation和eval
7.7.4 定向和标记
7.8 在模块内报告错误
7.8.1 Carp函数
7.8.2 Cluck函数
7.8.3 Croak函数
7.8.4 Confess函数
7.9 在GUIs和Web应用程序内报告错误
7.9.1 Tk对话
7.9.2 Web错误报告
第8章 使用编译选项和警告
8.1 警告
8.1.1 $^W变量
8.1.2 早期的warning编译选项
8.1.3 Perl 5.6的词法警告
8.2 strict编译选项
8.2.1 vars选项
8.2.2 refs选项
8.2.3 subs选项
8.3 Perl的其他编译选项
8.3.1 autouse
8.3.2 base
8.3.3 blib
8.3.4 常量
8.3.5 diagnostics
8.3.6 fields
8.3.7 integer
8.3.8 less
8.3.9 lib
8.3.10 ops
8.3.11 re
8.3.12 sigtrap
8.3.13 subs
8.3.14 vars
第9章 人工调试技术
9.1 使用print
9.1.1 引用信息
9.1.2 跟踪执行
9.1.3 使用调试选项
9.2 使用caller
9.3 使用eval
9.4 信号
9.4.1 作为异常的信号
9.4.2 _WARN_信号和_DIE_信号
9.5 写日志
9.6 重定向STDOUT/SIDERR
9.6.1 使用日志函数
9.6.2 向syslog报告
9.6.3 向Windows NT/2000 Event log报告
第10章 Perl调试器
10.1 使用调试器
10.1.1 监视
10.1.2 单步方式
10.1.3 断点
10.2 Pert调试器
10.2.1 用户界面
10.2.2 调试器命令
10.2.3 使用非交互模式
10.2.4 定制
10.2.5 可供选择的两种界面
10.3 ActivePerl调试器
10.3.1 调试器界面
10.3.2 Registers(寄存器)
10.3.3 Proximity面板
10.3.4 Watches面板
10.3.5 执行语句
10.3.6 调试工具
10.3.7 书签
10.3.8 使用工具
10.4 命令行调试
10.4.1 标记和解析
10.4.2 Stack Snapshots
10.4.3 上下文(循环)栈处理
10.4.4 跟踪执行
10.4.5 方法和重载方案
10.4.6 字符串/数值转换
10.4.7 显示预处理程序(适用于CPP)
10.4.8 内存分配
10.4.9 格式处理
10.4.10 正则表达式
10.4.11 语法树
10.4.12 脏检查
10.4.13 内存泄漏
10.4.14 哈希表卸出
10.4.15 分配中间结果暂存器
10.4.16 清除
10.4.17 线程同步
10.5 调试内存使用
10.5.1 真正含义
第四部分 优化代码
第11章 手工优化
11.1 跟踪执行
11.2 发现资源下降
11.2.1 提高速度
11.2.2 减少内存
第12章 自动优化
12.1 Perl剖析器
12.1.1 脚本剖析实例
12.1.2 一次命中剖析
12.1.3 剖析的备选方案
12.2 使用编译器
12.2.1 后端
12.2.2 perlcc前端
12.2.3 解释代码和编译代码之间的区别
12.3 比较脚本和可执行程序的速度
12.3.1 测试
12.3.2 归纳结论
第五部分 测试代码
第13章 测试方法
13.1 测试装具模块的角色
13.2 测试策略
13.2.1 测试示例
13.2.2 测试内容
13.2.3 界限和范围
13.3 建立测试装具模块
13.3.1 使用Test模块
13.3.2 使用Test::Harness
13.3.3 CGI Harness
第14章 中断代码
14.1 磁盘空间
14.2 CPU时间
14.3 环境变量
14.4 安全和权限
14.5 脏数据
14.5.1 使用脏模式
14.5.2 检查数据和澄清数据
14.6 Web服务器
14.6.1 Web环境
14.6.2 网络通信
14.6.3 外部程序
14.6.4 用户安全性
14.6.5 超时
14.7 Web数据
14.8 多重执行
第六部分 附录
附录A 错误交叉参考
猜您喜欢