码迷,mamicode.com
首页 > 系统相关 > 详细

项目.多进程SVG_BUG排除

时间:2018-09-10 11:14:50      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:工作   list   接收   指定   --   客户   webview   状态   异常   

1、现在(20180910) 还是有Bug存在(有一段时间没弄它了),还是会 卡死。

  隔了这么一段时间,现在的思路应该不会 局限在当时的情景里面了,现在记录下 排除Bug的一些思路,供以后 做工作时使用:

 1.1、Log记录 -- 改进:

  (1)、使用文件追加的方式一行一行的保存Log信息 (使用 TStringList时,它是整体保存的,会有TStringList保存不了太多信息的情况)

  (2)、可以 将一整块Log信息 分成 多个小块,每块保存到一个 文件中

  (3)、删掉(去除) 指定行数(或者 第n行~第n+m行) 的Log信息

 1.2、调试 定位 思路

  (1)、判断 程序卡主时,是 死锁 还是 代码异常:

   ①、看有无异常信息打印出来

   ②、杀 Server/Client进程,看留下的 是否活着。程序 卡主时(未杀掉时),也可以看看 Server/Client两边进程 是什么状态(活的 / 卡住 /死了)

  (2)、怀疑的情况:

   ①、各个 Server/Client的标识,有 进程ID 改为使用 线程ID。

    ∵ Qt的QWebView中每一个网页 都会有子线程,使用 进程ID作为 客户端/服务端的标识的话,可能(肯定会有)造成 信息被错误的线程接收的情况--> 发现不是本线程的信息不处理(这个也要做计数)--> 不会再有触发 SetEvent的机会,于是程序 卡住,死锁了...

   ②、检查 各种计数:收 / 发 信息;接收到的信息 不是发给我的(线程标识不对 ; 是我自己发的 ; 不是我发的 但是是同一个进程的 别的线程发的 等等情况);我的请求还未 回复,对方的请求就来了(对方的请求来的计数);...

  (3)

2、

3、

4、

5、

 

项目.多进程SVG_BUG排除

标签:工作   list   接收   指定   --   客户   webview   状态   异常   

原文地址:https://www.cnblogs.com/DrMess/p/9617261.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!