- 浏览: 105843 次
最新评论
文章列表
http://blog.csdn.net/absurd/article/details/612612
http://blog.chinaunix.net/uid-20622481-id-90491.html
- 2013-11-22 12:38
- 浏览 304
- 评论(0)
调试工具及调试思路-3
- 博客分类:
- windows调试技术
2.3内存/句柄泄漏类问题
(1)要快速定位内存和句柄泄漏,并迅速找到泄漏堆栈和代码行,请首先熟悉工具DebugDiag的使用.
(2)通过debugDiag监控出现性能问题的进程.
(3)当产生内存和句柄泄漏的时候,通过debugDiag抓去此时的进程的coredump文件,
(4)配置代码的pdb访问路径,启用DebugDiag的分析功能开始分析,通过windows分析报告的堆栈提示
找到泄漏代码行,问题解决.DebugDiag的使用方法,请参照文档: 性能类问题定位工具DebugDiag使用说明
2.4CPU占用内存高问题
(1)进程的CPU占用高,最好在CPU占用高时,抓去 ...
调试工具及调试思路-2
- 博客分类:
- windows调试技术
2、调试思路
2.1指针访问违例等异常类问题
(1)要处理此类问题,请首先熟悉windbg调试器的的用法.
(2)要分析异常问题,找到异常代码,首先要有异常情况下的core dump文件,操作系统处理过程中,有硬件中断,到操作系统的SHE处理,最终到分发给调试器,分析core dump,找到异常线程栈,找到线程栈后,开始从windows的SHE相关接口往上看,找到出错的自己模块和代码.
相关可以分享的调试命令:
~*kn 100 //切换到指点线程.
!analyze –v/ -hang/-crash //调试器直接进行异常分析,找出线程,并展示异常码和异常堆栈
.frame x / ...
调试工具及调试思路
- 博客分类:
- windows调试技术
1、调试工具
(1)Windbg , vc6,vc8, Ntsd, cdb
分析挂死,死锁,CPU占用,异常的最佳工具,提供dump文件生成,源代码查看,线程栈打印,资源调用跟踪等功能,是定位问题的神兵利器
(2)DebugDiag
分析多种类型内存泄漏,异常,监控进程的执行状态的好工具,特点是泄漏代码调用栈清晰,给出的修改建议可操作性强,同时较其他的分析工具线程栈更加全面. 更强大的功能是能够选择异常类型自动生成dump文件,解决随机问题很有效
(3)Application verifier
辅助工具,通过设置开关,能够跟踪多种资源的使用,并给出最近的调用栈.是分析泄漏,死锁的好工具.
(4) ...
《软件调试》及补编 张银奎 (比较系统全面)
《软件调试实战》 (德)格勒特克,赵俐译 (介绍了几款性能测试的工具,包括quantity)
《Windows用户态程序高效排错》熊力 (由几篇博客拼凑而成,并且以互联网应用为示例)
《Windows高级调试》 Mario Hewardt Daniel Pravat 著
《日臻完善:软件调试与优化典型应用》
Windbg简明教程.doc Sucsor on 2006.06.11 (介绍了windbg最常用的命令)
通往WinDbg的捷径 博客 (清晰实用的步骤)
- 2013-11-22 11:02
- 浏览 427
- 评论(0)
百度云架构首席专家 林仕鼎
谈谈
Event vs Thread
4. Programming Model
“Why
Threads Are a Bad Idea”
单使用thread结构的server是很难真正做到高性能的,原因在于内存使用、切换开销、同步开销和保证锁正确性带来的编程复杂度等。
“SEDA:
An Architecture for Well-Conditioned, Scalable Internet Services”,OSDI’01
Thread不好,但event也没法解决所有问题,于是我们寻找一个结合的方法。SEDA将应用拆分为多个stage, ...
- 2013-11-21 16:54
- 浏览 392
- 评论(0)
软件设计的经典书籍,译者语言功底也是了得
1、Unix操作系统发展的历史,武侠口吻描述的颇有趣味
2、文本化的协议设计方法,应用协议的三元老,学习协议设计的好出处
3、透明性和可显性,让活代码还是活代码,让死代码还是死代码
4、管道之于Unix的意义:将大程序划分成多个行为简单的子程序,定义好接口。讨论了进程线程和IPC
5、微语言,当规格固定时,可以将程序提升成为微语言
- 2013-11-20 18:04
- 浏览 372
- 评论(0)
自动测试框架和打桩库,详细使用手册见:
http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html
- 2013-11-18 16:58
- 浏览 410
- 评论(0)
4、整数溢出
(1)无符号数(0、+),不可能发生溢出,当它超过范围时,从0开始重新计数
有符号数(-、0、+),可能发生溢出,并且“溢出”的结果不固定
(2)当一个无符号数和有符号数相加的时候,有符号数自动转化为无符号数
(3)判断溢出
方法一:强制转换成无符号数
if( (unsigned) a + (unsigned) b > INT_MAX )
fun();
方法二:利用(2)判断溢出
if( a > INT_MAX -b )
fun();
(5)常用误区
方法一:无符号数运算结果为无符号数,无符号数始终大于等于0
if( i - j > ...
- 2013-11-12 16:11
- 浏览 472
- 评论(0)
1、封号
(1)多一个封号,则不会执行循环体
for(...);
{...}
(2)少一个封号,改变main函数返回值类型为struct A
struct A
{
}
main()
{
}
2、悬挂else引发的问题,else与最近的if(y == 0) error();匹配
if (x == 0)
if(y == 0) error();
else{
z = x + y;
f(&z);
}
3、奇怪的无限死循环
int i,a[10];
for(i=1; i<=10; i++)
a[i] = 0;
实际上并不存在的a[10]
实际上 ...
- 2013-11-12 16:10
- 浏览 281
- 评论(0)
3、关于chmod命令,如何给文件ext1增加所有用户的执行权限和同组用户的写权限
答案:chmod a+x g+w ext1
分析:chmod (u/g/o/a) (+/-/=) (r/w/x)
(u/g/o/a):该文件的用户、该用户所属组的其他成员、其他组、所有的用户
(+/-/=) :增加、减少、等于
(r/w/x) :读、写、执行(421)
4、linux内核包括哪几个子系统
答案:进程调度、内存管理、虚拟文件系统、网络接口、进程间通信
分析:不包括硬件管理系统
5、那个查看文件内容的命令可以移动光标
答案:less
分析:more 显示百分比,cat一次性输出 ...
- 2013-11-06 14:44
- 浏览 328
- 评论(0)
1、vi编辑器中执行存盘退出的命令是:()
答案:ZZ或者:wq
分析:两个大写的Z,或者:wq
2、通过文件名存取文件时,文件系统内部的操作过程是通过:
答案:文件名在目录中查找对应的I节点,通过I节点存取文件数据
分析:
(1)UNIX文件系统包括引导块、超级块、i节点区、文件存储区、进程对换区等几部分。
(2)引导块占用第0号物理块,不属于文件系统管辖,如果系统中有多个文件系统,只有根文件系统才有引导程序放在引导块中,其余文件系统都不使用引导块;
超级块占用第1号物理块,是文件系统的控制块,超级块包括:文件系统的大小、空闲块数目、空闲块索引表、空闲i节点数目、空闲i节点索引 ...
- 2013-11-06 14:43
- 浏览 321
- 评论(0)
source insight有用的快捷键
1、shift+F8 高亮当前单词
3、F7 浏览项目符号
4、F8 浏览本文件符号
5、Ctrl+L Click(select) 跳转到原型
6、Ctrl+R Click(select):语法信息(弹出该语法的信息)
7、CTRL+TAB切换不同的窗口
8、CRTL+/Refference
11、F5跳转到特定行
12、ALT+<跳转到上一个修改处
13、ALT+>跳转到下一个修改处
14、ctrl+o鼠标定位到项目窗口
15、alt+q关闭或打开项目窗口
16、alt+l鼠标定位到符号窗口
17、alt+s关闭 ...
- 2013-11-06 09:38
- 浏览 840
- 评论(0)
(6)LinuxThreads存在不足,不完全兼容POSIX
进程ID问题,这是最关键的不足,Linux内核并不支持真正意义上的线程,这些轻量级进程拥有独立的进程id,而按照POSIX定义,同一
进程的所有线程应该共享一个进程id和父进程id,这在目前的“一对一”模型下是无法实现的;
信号处理问题,某些信号的缺省动作难以在现行体系上实现,比如SIGSTOP和SIGCONT,linuxThreads只能将一个线程挂起,而无法挂起整个进程。
线程总数问题,LinuxThreads将每个进程的线程最大数目定义为1024,但实际上这个数值还受到整个系统的总进程数限制,这是由于线程其实是核心进程。 ...
- 2013-11-06 09:33
- 浏览 489
- 评论(0)
(1)《用TCP/IP进行网际互连》Douglus.E.Comer
(2)《操作系统设计与实现》 AndrewSTanenbaum
(3)《大话无线通信》丁奇
(4)《大话通信》杨波
(5)《Unix/Linux编程实践教程》Bruce Molay
(6)《UNIX编程艺术》 Eric S. Raymond
(7)C经典书籍
《C和指针》《 C专家编程》《 C缺陷和陷阱》 《C语言深度剖析》
(8)C++经典书籍
《c++ 编程思想》《c++沉思录》《effective c++》《more effective c++》《高质量c/c++编程指南》
(9)《计算机程序设计艺术 ...
- 2013-11-05 11:43
- 浏览 350
- 评论(0)