利用C#线程窗口调试多线程程序

  从网上的资料判断,调试多线程程序似乎就一下3种方法。

1、在日志的某个地方写日志文件。

优点:不会干扰程序的执行,特别是对网络的多线程通信。

缺点:每次都需要打开日志文件以查看进程运行的信息。

2、利用断点进行调试。

优点:直观,可以直接看到运行过程的值

缺点:在多个线程设置断点,可能让程序跳来跳去,还需要额外地分出一部分精力用来理清程序的逻辑

3、利用弹出窗口来查看进程调试的信息。

优点;直观

缺点;在调试网路通信的时候,使得通信的过程产生延时,导致通信失败。

4、利用vs2010自带的线程窗口来调试

优点:直观,可以直接从进程图上看到哪个进程是活动进程,哪些进程处于阻塞状态。

缺点:需要结合断点调试,基本上就是断点调试的加强版

编译环境:vs2010

语言:C#

作者:kissazi2 
出处:http://www.cnblogs.com/kissazi2/ 
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载:http://www.cnblogs.com/kissazi2/archive/2012/02/28/2977147.html

时间: 2024-10-02 12:07:04

利用C#线程窗口调试多线程程序的相关文章

利用C#线程机制实现应用程序的单实例运行

程序 只要你的程序中Main入口是如下的,则你的程序在运行时,在一个时刻只能有一个程序实例,比如Winamp就是这种,当它在运行时,再又击这个程序,是不会再运行一个实例的. 代码很简单 [STAThread]          static void Main(string[] args)          {               bool isExist;  System.Threading.Mutex mutex=new System.Threading.Mutex(true,"my

使用Java Debug Interface(JDI)调试多线程应用程序

多线程环境下的程序调试是让开发者头痛的问题.在 IDE 中通过添加断点的 方式调试程序,往往会因为停在某一条线程的某个断点上而错失了其他线程的执 行,线程之间的调度往往无法预期,并且会因为断点影响了实际的线程执行顺序 .因此,在调试多线程程序时,开发者往往会选择打印 Trace Log 的方式来帮 助调试. 使用 Log 来帮助调试的问题在于,开发者往往无法预期哪些关键点需要记录 ,于是在整个程序的调试过程中,需要不断的加入 Log 调用,编译生成可执行 程序并部署,这对于大尺寸的软件开发项目无

利用Xdebug和Komodo调试PHP应用程序

了解Xdebug和Komodo的配置用来在服务器上调试PHP程序. 在编写应用程序时,出色的开发人员使用优秀的工具进行开发和设计.对使用PHP编写基于Web的应用来说同样适用.对PHP应用编程来说两个有用的工具分别是Komodo和Xdebug. Komodo是一个跨平台的集成开发工具,可以使用DBGp协议进行远程PHP应用程序调试.Xdebug是提供了调试支持功能的PHP扩展.使用这两个工具,你可以在你的服务器上远程调试任何PHP应用程序. 第一步,在运行要调试的脚本的服务器上安装Xdebug,

android程序子线程里面再启动多线程去下载,为什么会变得超慢

问题描述 android程序子线程里面再启动多线程去下载,为什么会变得超慢 如果在主线程里面启动多线程,下载速度达到5mbs.但是主界面会卡死,所以先启动了一个子线程,然后在子线程里面再启动多线程去下载,速度才只有0.2mbs,相差25倍,谁能解析一下? 解决方案 你创建了多少线程?一般来说10个以上就没有意义了.还有你的代码怎么写的,有没有死锁. 解决方案二: 程序很简单,不存在死锁,线程开多少个都实验过,没什么差异.其他对android的线程管理机制不是很熟悉,各位老师,有没有相关的书籍或文

MFC多线程程序如果一个线程报错

问题描述 MFC多线程程序如果一个线程报错 MFC多线程程序如果一个线程报错,关闭这个线程,然后重新执行这个线程,不丢失数据怎么做? 解决方案 每执行一个,就把数据保存到文件中,然后恢复的时候从文件读取. 解决方案二: 没办法 线程强制结束 数据就都丢失了

调试Android程序只走主线程不走子线程

问题描述 调试Android程序只走主线程不走子线程 调试Android程序只走主线程不走子线程调试Android程序只走主线程不走子线程调试Android程序只走主线程不走子线程 解决方案 断点打在run方法内 解决方案二: 启动线程要调用start方法,不要通过run方法调用,你怎么用的

如何利用Emacs来调试C++程序_C 语言

俗话说,Emacs是神的编辑器,而Vim是编辑器之神.高手程序员都是用这两样神器进行开发.本人觉得,Emacs之所以厉害,是因为许多在其他编辑器下必须用鼠标点选很多步的操作,在Emacs下都可以通过键盘来完成.大大地节省了你在显示器上找按钮的时间.Emacs在Linux上运行感觉比windows流畅些,用Emacs编辑程序时,手基本不用离开键盘,就可以完成所有的工作.那么今天就让我们看看如何利用Emacs来调试C++程序. 一.安装Emacs和GCC 下载地址:Emacs:http://www.

利用director.ini调试应用程序

  本文介绍了如何使用directro.ini文件来调试PRoject程序或者shockwave movie.当我们在director编程环境里进行程序的调试的时候,我们可以看到脚本错误的类型,然而,当我们的程序运行在.exe或者shockwave movie的时候,我们看不到详细的错误提示信息,我们看到的只是象下面的一些提示:"script Error,continue?"等.这样的话就增加我们当错误发生的时候调试应用程序的的难度.director.ini文件可以帮忙解决这一个问题,

《多核与GPU编程:工具、方法及实践》---- 3.9 调试多线程应用

3.9 调试多线程应用 调试多线程应用不仅仅是具备一个能够管理多线程的调试器.许多现代调试器支持线程的执行和独立调试,并支持指定线程的断点.观察窗等.本节不讨论调试器的具体实现方法.例如,图3-13展示了DDD--GNU DeBugger(GDB)前端,它执行代码清单3-24中公平的读者–写者解决方案.在UNIX/Linux中能够使用DDD和GDB(对于CLI困难)的唯一要求是在编译程序时添加调试支持选项,亦即使用编译器的-g开关. 多线程程序中的bug通常只有在与事件的某个精确时序有关的特定环