Windows下release版程序崩溃如何定位到代码段?



  • 代码:
    void Dialog::on_btnTestCrash_clicked()
    {
    QWidget * w;
    w->show();
    }

    程序崩溃后,我生成了崩溃日志,显示的异常地址是在Qt5Widgets.dll中的61E088AB

    Windows: 6.1.7601, SP 1.0, Product Type 1
    Process: E:\build-TestCrash-Qt_5_4_2_MinGW491-Release\release\TestCrash.exe
    Exception Addr: 61E088AB Module: C:\Qt\Qt5.4.2\5.4\mingw491_32\bin\Qt5Widgets.dll
    Exception Code: C0000005
    Read Address: 00000014
    Instruction: 8B 53 14 8B 08 8B 52 08 8B 01 89 14 24 FF 50 4C
    Registers:
    EAX: 00EAC33C EBX: 00000000 ECX: 00000000 EDX: 0028FE14
    ESI: 0028FE14 EDI: 0028D408 ESP: 0028D2E0 EBP: 0028D3D8
    EIP: 61E088AB EFlags: 00010202
    Call Stack:
    61E088AB C:\Qt\Qt5.4.2\5.4\mingw491_32\bin\Qt5Widgets.dll
    6212F57C C:\Qt\Qt5.4.2\5.4\mingw491_32\bin\Qt5Widgets.dll

    这个是我生成的asm文件
    00401ea0 <__ZN6Dialog23on_btnTestCrash_clickedEv>:

    void Dialog::on_btnTestCrash_clicked()
    {
    int *p = NULL;
    *p = 4;
    401ea0: c7 05 00 00 00 00 00 movl $0x0,0x0
    401ea7: 00 00 00
    401eaa: 0f 0b ud2
    401eac: 90 nop
    401ead: 90 nop
    401eae: 90 nop
    401eaf: 90 nop



  • @调味料 如果不能定位到调试版的话,那么需要使用分段注释的方法。也就是将你认为最有可能出现问题的代码注释掉。分段确定问题。还有一个办法就是对class的构造函数和析构函数使用一个类多继承之,提供钩子方法,然后在钩子方法中使用类似操作系统延时的方法或者程序暂停,这样可以让快速崩溃的效果看上去慢一点,动作分解一下。


 

最近的回复

  • @jiangcaiyang 如果需要自动化测试,也用的上

    阅读更多
  • @青山白云 这个可能有点用,但是可能更多局限于爬虫领域吧。

    阅读更多
  • https://blog.csdn.net/huilan_same/article/details/51896672

    python制作爬虫时候使用selenium进行自动化
    使用chromedriver时候需要对应版本

    chromedriver版本 支持的Chrome版本 v2.39 v66-68 v2.38 v65-67 v2.37 v64-66 v2.36 v63-65 v2.35 v62-64 v2.34 v61-63 v2.33 v60-62 v2.32 v59-61 v2.31 v58-60 v2.30 v58-60 v2.29 v56-58 v2.28 v55-57 v2.27 v54-56 v2.26 v53-55 v2.25 v53-55 v2.24 v52-54 v2.23 v51-53 v2.22 v49-52 v2.21 v46-50 v2.20 v43-48 v2.19 v43-47 v2.18 v43-46 v2.17 v42-43 v2.13 v42-45 v2.15 v40-43 v2.14 v39-42 v2.13 v38-41 v2.12 v36-40 v2.11 v36-40 v2.10 v33-36 v2.9 v31-34 v2.8 v30-33 v2.7 v30-33 v2.6 v29-32 v2.5 v29-32 v2.4 v29-32 查谷歌浏览器版本

    地址栏输入chrome://settings/help

    0_1528459921154_16bbaf4d-0e8e-42cd-9e52-f8fc43932871-image.png

    所有chromedriver均可在下面链接中下载到:

    http://chromedriver.storage.googleapis.com/index.html

    阅读更多
  • 0_1528166192946_20180605_103351.gif

    源代码

    Fork me on Gitee

    阅读更多

关注我们

微博
QQ群











召唤伊斯特瓦尔