Как отладить редкий access violation c++

235
12 января 2021, 20:10

Приложение установлено у множества клиентов заказчика. Вылетает редко, не у всех и не сразу после запуска. Перед вылетом может нормально проработать несколько дней. Приложение на Qt5.12.3/qml/C++. Сборка mingw. Для получения информации о слётах подключен breakpad. На краши он реагирует, создаёт минидампы, но стека вызовов в нём нет. Минидамп разворачиваю утилитой Dumpchk.exe. Все краши однотипные. Пример:

    Symbol search path is: srv*
    Executable search path is:
    Windows 10 Version 14393 MP (8 procs) Free x64
    Product: WinNt, suite: SingleUserTS Personal
    10.0.14393.2097 (rs1_release_1.180212-1105)
    Machine Name:
    Debug session time: Fri May 24 16:50:24.000 2019 (UTC + 3:00)
    System Uptime: not available
    Process Uptime: 0 days 0:00:02.000
    ................................................................
    ...........................................
    This dump file has an exception of interest stored in it.
    The stored exception information can be accessed via .ecxr.
    (1c88.1ccc): Access violation - code c0000005 (first/second chance not available)
    ----- User Mini Dump Analysis
    MINIDUMP_HEADER:
    Version         A793 (A0F1)
    NumberOfStreams 13
    Flags           0
                    0000 MiniDumpNormal
    Streams:
    Stream 0: type ThreadListStream (3), size 000003F4, RVA 000006F0
      21 threads
      RVA 000006F4, ID 1CCC, Teb:00000000003CC000       
      RVA 00000724, ID 1B20, Teb:00000000003CE000
      RVA 00000754, ID 18D0, Teb:00000000003D0000
      RVA 00000784, ID E7C, Teb:00000000003D2000
      RVA 000007B4, ID 173C, Teb:00000000003D4000
      RVA 000007E4, ID 1188, Teb:00000000003D6000
      RVA 00000814, ID 1F98, Teb:00000000003D8000
      RVA 00000844, ID 1650, Teb:00000000003DA000
      RVA 00000874, ID 17F0, Teb:00000000003DC000
      RVA 000008A4, ID 1494, Teb:00000000003DE000
      RVA 000008D4, ID 1D00, Teb:00000000003E0000
      RVA 00000904, ID 18C4, Teb:00000000003E2000
      RVA 00000934, ID 1DE4, Teb:00000000003E4000
      RVA 00000964, ID CC0, Teb:00000000003E6000
      RVA 00000994, ID 18A8, Teb:00000000003E8000
      RVA 000009C4, ID 1A74, Teb:00000000003EA000
      RVA 000009F4, ID 1594, Teb:00000000003EC000
      RVA 00000A24, ID 1958, Teb:00000000003EE000
      RVA 00000A54, ID 1358, Teb:00000000003F0000
      RVA 00000A84, ID 17C0, Teb:00000000003F2000
      RVA 00000AB4, ID 1E04, Teb:00000000003F4000
    ...
    Stream 2: type MemoryListStream (5), size 000001A4, RVA 0000D461
      26 memory ranges
      range#    RVA      Address             Size
           0 0000D605    00000000`060fc6c8   00000000`00003938
           1 00010F3D    00000000`062ffb58   00000000`000004a8
           2 000113E5    00000000`0094ce58   00000000`000031a8
           3 0001458D    00000000`064fc918   00000000`000036e8
           4 00017C75    00000000`066fc918   00000000`000036e8
           5 0001B35D    00000000`0368c918   00000000`000036e8
           6 0001EA45    00000000`046be598   00000000`00001a68
           7 000204AD    00007ff8`708df7ae   00000000`00000100  
           8 000205AD    00000000`068fff08   00000000`000000f8
           9 000206A5    00000000`00d7fb58   00000000`000004a8
          10 00020B4D    00000000`048bfb58   00000000`000004a8
          11 00020FF5    00000000`058ffb38   00000000`000004c8
          12 000214BD    00000000`06afc918   00000000`000036e8
          13 00024BA5    00000000`00f7fb58   00000000`000004a8
          14 0002504D    00000000`04abfb58   00000000`000004a8
          15 000254F5    00000000`05afc688   00000000`00003978
          16 00028E6D    00007ff8`9c7360d4   00000000`000001a0
          17 0002900D    00007ff8`9c736ba4   00000000`00000100
          18 0002910D    00000000`06cffd58   00000000`000002a8
          19 000293B5    00007ff8`9c737d04   00000000`00000100
          20 000294B5    00007ff8`9c739824   00000000`00000100
          21 000295B5    00000000`0117fb58   00000000`000004a8
          22 00029A5D    00000000`04cbc8d8   00000000`00003728
          23 0002D185    00000000`05cfc738   00000000`000038c8
          24 00030A4D    00000000`06efc918   00000000`000036e8
          25 00034135    00000000`05efc638   00000000`000039c8
      Total memory: 2a4f8
    Stream 3: type ExceptionStream (6), size 000000A8, RVA 00000648
      ThreadID 7372  
      ExceptionCode C0000005
      ExceptionRecord 0
      ExceptionAddress 7ff8708df82e
      Context record RVA 5f46, size 4d0
Stream 4: type SystemInfoStream (7), size 00000038, RVA 000000BC
  ProcessorArchitecture   0009 (PROCESSOR_ARCHITECTURE_AMD64)
  ProcessorLevel          0006
  ProcessorRevision       5E03
  NumberOfProcessors      08
  MajorVersion            0000000A
  MinorVersion            00000000
  BuildNumber             00003839 (14393)
  PlatformId              00000002 (VER_PLATFORM_WIN32_NT)
  CSDVersionRva           00003A9C
                            Length: 0
  Product: WinNt, suite: SingleUserTS Personal
Stream 5: type MiscInfoStream (15), size 00000554, RVA 000000F4
Stream 6: type SystemMemoryInfoStream (21), size 000001EC, RVA 00003818
  Revision                                  :                                1
  Flags                                     :                              0xf
  BasicInfo
    TimerResolution                         :                          156,250
    PageSize                                :                           0x1000
    NumberOfPhysicalPages                   :                        2,072,655
    LowestPhysicalPageNumber                :                              0x1
    HighestPhysicalPageNumber               :                         0x283fff
    AllocationGranularity                   :                          0x10000
    MinimumUserModeAddress                  :                          0x10000
    MaximumUserModeAddress                  :                   0x7ffffffeffff
    ActiveProcessorsAffinityMask            :                             0xff
    NumberOfProcessors                      :                                8
  FileCacheInfo
    CurrentSize                             :                       60,895,232
    PeakSize                                :                      147,259,392
    PageFaultCount                          :                        1,546,472
    MinimumWorkingSet                       :                            0x100
    MaximumWorkingSet                       :                      0x100000000
    CurrentSizeIncludingTransitionInPages   :                          741,618
    PeakSizeIncludingTransitionInPages      :                          758,001
    TransitionRePurposeCount                :                                0
    Flags                                   :                                0
  BasicPerfInfo
    AvailablePages                          :                        1,629,378
    CommittedPages                          :                          413,189
    CommitLimit                             :                        2,400,335
    PeakCommitment                          :                          838,047
  PerfInfo
    IdleProcessTime                         :                  311,871,093,750
    IoReadTransferCount                     :                    5,476,043,446
    IoWriteTransferCount                    :                    1,928,237,893
    IoOtherTransferCount                    :                      353,593,383
    IoReadOperationCount                    :                        1,196,109
    IoWriteOperationCount                   :                          524,533
    IoOtherOperationCount                   :                        3,140,102
    AvailablePages                          :                        1,629,378
    CommittedPages                          :                          413,189
    CommitLimit                             :                        2,400,335
    PeakCommitment                          :                          838,047
    CommitLimit                             :                        2,400,335
    PageFaultCount                          :                       18,303,564
    CopyOnWriteCount                        :                          126,311
    TransitionCount                         :                        3,943,574
    CacheTransitionCount                    :                                0
    DemandZeroCount                         :                       13,068,875
    PageReadCount                           :                          972,795
    PageReadIoCount                         :                          167,144
    CacheReadCount                          :                                0
    CacheIoCount                            :                                0
    DirtyPagesWriteCount                    :                                0
    DirtyWriteIoCount                       :                                0
    MappedPagesWriteCount                   :                            4,179
    MappedWriteIoCount                      :                              120
    PagedPoolPages                          :                           73,164
    NonPagedPoolPages                       :                           27,786
    PagedPoolAllocs                         :                        2,829,851
    PagedPoolFrees                          :                        2,488,226
    NonPagedPoolAllocs                      :                        1,662,207
    NonPagedPoolFrees                       :                        1,458,382
    FreeSystemPtes                          :                       12,289,341
    ResidentSystemCodePage                  :                                0
    TotalSystemDriverPages                  :                            7,174
    TotalSystemCodePages                    :                                0
    NonPagedPoolLookasideHits               :                              785
    PagedPoolLookasideHits                  :                       15,838,833
    AvailablePagedPoolPages                 :                        7,950,922
    ResidentSystemCachePage                 :                                0
    ResidentPagedPoolPage                   :                           69,139
    ResidentSystemDriverPage                :                            8,100
    CcFastReadNoWait                        :                                0
    CcFastReadWait                          :                          702,846
    CcFastReadResourceMiss                  :                                0
    CcFastReadNotPossible                   :                           61,960
    CcFastMdlReadNoWait                     :                                0
    CcFastMdlReadWait                       :                                0
    CcFastMdlReadResourceMiss               :                                0
    CcFastMdlReadNotPossible                :                                0
    CcMapDataNoWait                         :                                0
    CcMapDataWait                           :                        4,372,959
    CcMapDataNoWaitMiss                     :                                0
    CcMapDataWaitMiss                       :                           44,192
    CcPinMappedDataCount                    :                          200,943
    CcPinReadNoWait                         :                               30
    CcPinReadWait                           :                           71,351
    CcPinReadNoWaitMiss                     :                           12,064
    CcPinReadWaitMiss                       :                            1,117
    CcCopyReadNoWait                        :                            2,347
    CcCopyReadWait                          :                          768,635
    CcCopyReadNoWaitMiss                    :                            2,023
    CcCopyReadWaitMiss                      :                          106,965
    CcMdlReadNoWait                         :                                0
    CcMdlReadWait                           :                              737
    CcMdlReadNoWaitMiss                     :                                0
    CcMdlReadWaitMiss                       :                                0
    CcReadAheadIos                          :                          171,129
    CcLazyWriteIos                          :                            8,651
    CcLazyWritePages                        :                          123,588
    CcDataFlushes                           :                           69,052
    CcDataPages                             :                          349,713
    ContextSwitches                         :                        9,084,376
    FirstLevelTbFills                       :                                0
    SecondLevelTbFills                      :                                0
    SystemCalls                             :                       79,678,661
    CcTotalDirtyPages                       :                            6,972
    CcDirtyPageThreshold                    :                          203,677
    ResidentAvailablePages                  :                        1,942,015
    SharedCommittedPages                    :                           38,899
Stream 7: type ProcessVmCountersStream (22), size 00000098, RVA 00003A04
  Revision                                  :                                2
  Process Counters
    PageFaultCount                          :                          167,741
    PeakWorkingSetSize                      :                        0x2a8e000
    WorkingSetSize                          :                        0x2a84000
    QuotaPeakPagedPoolUsage                 :                          0x67fd8
    QuotaPagedPoolUsage                     :                          0x563e0
    QuotaPeakNonPagedPoolUsage              :                           0xa140
    QuotaNonPagedPoolUsage                  :                           0xa070
    PagefileUsage                           :                        0x1c94000
    PeakPagefileUsage                       :                        0x212f000
    PeakVirtualSize                         :                       0x118a8000
    VirtualSize                             :                       0x103f6000
    PrivateUsage                            :                        0x1c94000
    PrivateWorkingSetSize                   :                        0x10e0000
    SharedCommitUsage                       :                         0x449000
  Job Counters
    JobSharedCommitUsage                    :                         0x46e000
    JobPrivateCommitUsage                   :                        0x228f000
    JobPeakPrivateCommitUsage               :                        0x272a000
    JobPrivateCommitLimit                   :                                0
    JobTotalCommitLimit                     :                                0
Stream 8: type ??? (1197932545), size 0000000C, RVA 0000D455
Stream 9: type UnusedStream (0), size 00000000, RVA 00000000
Stream 10: type UnusedStream (0), size 00000000, RVA 00000000
Stream 11: type UnusedStream (0), size 00000000, RVA 00000000
Stream 12: type UnusedStream (0), size 00000000, RVA 00000000

Локально пока не удавалось воспроизвести слёт. Со слов заказчика вылетает у пользователей в различных местах. В программе есть потоки, периодические нечастые запросы на сервер через интернет.

Судя по коду ошибки (ExceptionCode C0000005) это классический AccessViolation. Если дамп открывать студией, то расшифровка такая: ""

что можно сделать ещё? Как ловить редкие AccessViolation на чужих ПК?

READ ALSO
Ошибка в коде С++ Run-Time Check Failure #2 - Stack around the variable 'arr' was corrupted

Ошибка в коде С++ Run-Time Check Failure #2 - Stack around the variable 'arr' was corrupted

Очевидная проблема - проверки на выход за пределы массивов происходит до инкремента индекса элемента массива, а не после:

126
Почему не работает implicit conversion

Почему не работает implicit conversion

почему код с template<class T> компилируется, а без него нет

121
Указать ID в JQuery

Указать ID в JQuery

Есть счётчик и JS-код, в строке 71 decimals: 0 будет заменяться на 1 или 2Где и как указать ID (например, #%id%), чтобы при нескольких счётчиках на странице,...

111
Как скрыть элементы у родителей с jquery?

Как скрыть элементы у родителей с jquery?

не пойму как скрыть "del" только у тех элементов у которых есть дочерние https://jsfiddlenet/KLON/2z7xpqrt/10/

141