选择特殊符号
选择搜索类型
请输入搜索
DeBugger(调试器)是自从计算机诞生伊始就始终伴随着程序员的一个挚友,起初的调试器都是基于硬件直接实现的。
1 点击电脑桌面左下角的开水按钮,在菜单中选择控制面板 2 进入控制面板页面,右上角查看方式选择类别,在页面下方找到硬件和声音,打开 3 进入硬件和声音页面,在页面中找到声音,打开 4 进入声音的设置...
变压器调试定额中说:所有向各级电压配电配电装置进线设备不能再算调试,母排能计算调试;因为母排不是“电压配电配电装置进线设备”。
变压器调试包括变压器与电缆之间的协调调试,不包括电缆本身的调试。即;电缆调试费需要另行计算。
可配置多核处理器的调试器模块化分层设计
针对可配置处理器特点提出一个基于模块化分层设计的调试器架构。该调试器架构具有较好的可复用性和可扩展性,易于移植到其他处理器。本文提出与具体目标机解耦的调试器设计方法,采用具有统一服务接口的目标调试层与具体目标机交互,使用XML格式文件存储目标机信息,通过目标机信息查询模块获取目标机信息。经工程实践表明,本调试器对可配置处理器支持良好。
如何指定在每次调试器运行时不必复制依赖文件?
1 如何指定在每次调试器运行时不必复制依 赖文件? 问题:如何指定在每次调试器运行时不必复制依赖文件? 回答: 在 Visual Studio .NET 2003 中,右键单击该项目并选择 Properties 。将 Build Action 更改为 None 。这样就不会再复制此 文件了。如果此文件已修改或者需要再复制,则将 Build Action 更 改为 Content 。 如何将文件复制到模拟器中? 一种方式是在开发 PC 中创建一个文件共享,然后通过模拟器 中的文件资源管理器连接到该共享。 也可以将文件从共享位置复制并 粘贴到模拟器的本地文件系统中。 另一种方式是将文件添加到智能设 备项目中,并将它们的 Build Action 属性设置为“ Content 以下内容逐步介绍了如何将一个“ Content ”文件添加到智能设 备项目中: 1.打开或创建一个智能设备项目, 2
赛灵思SDK允许您使用远程主机中的赛灵思硬件服务器来调试远程目标设备。
硬件服务器
在通过JTAG连接目标的远程主机中,从XSCT控制台启动Xilinx hw_server。
SDK
目标连接
在硬件服务器中添加新的目标配置。
使用主机名(或IP地址)以及在远程主机中设置硬件服务器时使用的端口。
注意:确保使用符号服务器框被打勾。
高级选项卡可用于检查远程JTAG链中的可用设备。
调试配置
为应用程序项目创建一个新的调试配置,并确保已为远程连接目标设置了连接选项卡。
调试会话将以与本地连接的目标相同的方式启动。
中文译名:代码调试器,代码设计套件
.Net的尽管拥有非常强大调试器,但也有很多局限性,只限于CLR之上,无法得之CLR的具体细节,而且在多线程上就显得很无力。CLR在运行中隐藏了很多细节,像.net语法糖上的一些细节可以通过reflector得知(.Net 很多api在不同的版本实现细节也有较大的改动)CLR的运行也可以通过一些工具得到。也许你会问为什么也知道这些细节呢?要知道.net也是有很多bug而且.Net中的BCL多数都是在CLR中实现的,通过他我们可以很清楚找到我们的代码是怎么运行的,快速的找到代码的运行瓶颈。
这类工具有很多,如vs自带的性能分析,Windbg,clr profiler。 vs自带的性能分析可以很快的找到瓶颈代码,而且支持多线程。Windbg就更彪悍了,不过使用起来就比较费劲,搭配sos,可以在运行时查看应用程序的一些状态,但没有另外的两种详细。这里主要要说的是CLR Profile了,他检测结果最为详细,不过致命检测会影响应用程序的运行速度而无法得之时间上的性能测试,好像使用的人不多。有空写写windbg:)
CLR Profiler 有两个版本,分别用于CLR1.1 和 CLR2.0,至于CLR4卧试了一些也可以,但不知道是否完全兼容不,分别2003,和2005 由微软CLR性能组发布的。几百k很小巧的工具,有给出源代码,核心部分用C++写的,UI使用C#编写。CLR Profiler使用注入式测试,他会记录每一次的内存分配和方法调用,因而严重的影响程序的执行速度,会慢10~100倍的样子,而且无法直接附加到当前运行的进程。
CLRProfiler 是个侧重于跟踪分析GC heap的运行情况的的工具。
使用它你可以知道:
1.那个方法分配了那些类型的对象?
2.那些对象存活下来了?
3.在heap都有些什么?
4.是什么保持对象的存活?
5.在调用统计中可以得知方法被调用的的频率?
6.测试应用程序,asp.net(这个我没整有成功),和service
7.抓dump
8.提供命令行和api(没试过)
也有不足之处:
1.减缓运行速度,结果不能表明程序的速度
2.不能附加到进程
3.他因为记录了很多内容,如果记录了很长的时间,分析的过程将会很久
4.也就是这个东西,只好用来测试环境,生产环境就得Windbg了
先给张运行截图,在下面说面各种功能。
这是工具的祝界面,start application 选择需要运行的程序,可以选择是否跟踪内存分配和方法调用。当关闭应用程序(可以自动或手动),Profiler自动开始整理结果。显示如下:
在这里显示本次统计中的汇总。
Clr Profiler有个抓Dump的功能,当然是及时性的,在程序运行时点击show head now 即可抓取Dump同时很快的统计处分析结果。
如下:
在统计界面上有很多查看详情的按钮:
heap statistic 堆栈对象信息统计
Allocated :应用程序整个启动周期内分配的对象,按照对象大小排列,不同的颜色代码不同的对象,这在右侧会列出,没有截出来,下面的也是这样:
Relocated:重新移动过的对象,GC之后内存整理移动过的对象:
Finally head 最终堆栈内对象信息:
还有object finalized 和 critical object finalized,表示被终止化器终止的对象,后面那个是特殊标记过的终止对象,图相差不大就没有截取了。
接下来的就是垃圾回收统计
这个归总了回收次数
TimeLine:这是详细图(貌似这个得较强的显卡渲染,在公司那机器就出不来)
图中可以清晰的看出各次回收时间和前后内存占用量
GC Handle 统计GC句柄数
具体细节如下:
其他
summery界面没有显示所有的功能:
在View下面可以找到这些:
在所有的柱形图上右键有如下菜单,show who allocated Is a nice one,通过他可以追踪对象是谁分配的。
assmebly graph
class graph
call tree 这个功能记录每个方法的调用次数,感觉还是vs自带分析好些,那个还能统计时间占用:)
和进哥说起这个CLR Profiler,说回去写篇使用说明发出来。终于写好了,写篇还真花时间,这回真的理解live writer的好用,如果在网页里面编辑真要死人了。
这是对CLR Profiler介绍性的文章,具体应用场景在看完应该也能想到。限于篇幅,很多内容没有写出来,在卸载clr profiler中会带有详细的说明,100多页,真的很详细,有了它就没必要再去查什么资料了。建议不明白的还是看看那个为好:)