Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-12178

Breakpoints don't work inside lambdas

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • Qt Creator 3.2.0-beta1
    • Qt Creator 3.1.0
    • Debugger
    • None
    • Windows 8.1 x64
      MSVC 2013 x86
      CDB
    • 04fdbe3d01b5da60dd4a36000c70979e8f60a5e9

    Description

      Set a breakpoint inside a lambda. Run your code, and watch how the breakpoint is never hit. Actually, it gets adjusted to the end of the function when debugging, but still never breaks.

      #include <QCoreApplication>
      #include <QTimer>
      
      int main(int argc, char *argv[])
      {
          QCoreApplication app(argc, argv);
      
          QTimer timer;
          QObject::connect(&timer, &QTimer::timeout, [](){
              qDebug("The timer timed out.");
          });
          timer.setInterval(1000);
          timer.start();
      
          return app.exec();
      }
      

      Debugger log (left pane)

      l+t
      l+s
      bu1002 `C:\projects\breakpoint\main.cpp:11`
      !qtcreatorcdbext.breakpoints -t 0 -v
      sxn 0x4000001f
      .asm source_line
      !qtcreatorcdbext.setparameter maxStringLength=10000 maxStackDepth=20
      !qtcreatorcdbext.pid -t 1
      g
      q
      

      Debugger log (right pane)

      dATTEMPT SYNC
      
      sStarting debugger "CdbEngine" for ABI "x86-windows-msvc2013-pe-32bit"...
      dStart parameters: 'breakpoint' mode: 1
      dABI: x86-windows-msvc2013-pe-32bit
      dLanguages: c++ 
      dExecutable: Q:\build\breakpoint-Qt_5_3_0_5_3_0_win32\debug\breakpoint.exe 
      dDirectory: Q:\build\breakpoint-Qt_5_3_0_5_3_0_win32
      dDebugger: C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\cdb.exe
      dProject: C:\projects\breakpoint (built: Q:\build\breakpoint-Qt_5_3_0_5_3_0_win32)
      dQML server: 127.0.0.1:3768
      dRemote: :0
      dSysroot: 
      dDebug Source Location: 
      dDebugger settings: 
      dBreakpointCorrection: true  (default: true)
      dCDB_Console: false  (default: false)
      dLoadGdbInit: true  (default: true)
      dIgnoreFirstChanceAccessViolation: false  (default: false)
      dSourcePaths:   (default: )
      dSymbolPaths:   (default: )
      dBreakOnCrtDbgReport: false  (default: false)
      dBreakEvent:   (default: )
      dUseAddressInStackView: false  (default: false)
      dUseAddressInBreakpointsView: false  (default: false)
      dAdditionalArguments:   (default: )
      dRegisterForPostMortem: false  (default: false)
      dUseToolTipsInLocalsView: false  (default: false)
      dUseToolTips: true  (default: true)
      dUseToolTipsInBreakpointsView: true  (default: true)
      dUseToolTipsInBreakpointsView: true  (default: false)  ***
      dUseDebuggingHelper: true  (default: true)
      dRaiseOnInterrupt: true  (default: true)
      dShowThreadNames: false  (default: false)
      dUseCodeModel: true  (default: true)
      dCloseBuffersOnExit: false  (default: false)
      dBreakpointsFullPath: false  (default: false)
      dSwitchModeOnExit: false  (default: false)
      dAutoQuit: false  (default: false)
      dVerboseLog: false  (default: false)
      dLogTimeStamps: false  (default: false)
      dUseAlternatingRowColours: false  (default: false)
      dUseMessageBoxForSignals: true  (default: true)
      dFontSizeFollowsEditor: false  (default: false)
      dAdjustBreakpointLocations: true  (default: true)
      dSelectedPluginBreakpoints: false  (default: false)
      dNoPluginBreakpoints: false  (default: false)
      dAlwaysAdjustBreakpointsColumnWidths: false  (default: false)
      dEnableReverseDebugging: false  (default: false)
      dSkipKnownFrames: false  (default: false)
      dAllPluginBreakpoints: true  (default: true)
      dAlwaysAdjustLocalsColumnWidths: false  (default: false)
      dAutoDerefPointers: true  (default: true)
      dListSourceFiles: false  (default: false)
      dMaximalStringLength: 10000  (default: 10000)
      dShowStandardNamespace: true  (default: true)
      dAlwaysAdjustStackColumnWidths: false  (default: false)
      dSortStructMembers: true  (default: true)
      dShowQtNamespace: true  (default: true)
      dMaximalStackDepth: 20  (default: 20)
      dIdentifyDebugInfoPackages: false  (default: false)
      dWarnOnReleaseBuilds: true  (default: true)
      dTargetAsync: false  (default: false)
      dIntelFlavor: false  (default: false)
      dMultiInferior: false  (default: false)
      dWatchdogTimeout: 20  (default: 20)
      dGdbPostAttachCommands:   (default: )
      dUseDynamicType: true  (default: true)
      dAutoEnrichParameters: true  (default: true)
      dAttemptQuickStart: false  (default: false)
      dLoadGdbDumpers: true  (default: true)
      dGdbCustomDumperCommands:   (default: )
      dGdbStartupCommands:   (default: )
      dQmlInspector.FromQml: false  (default: false)
      dAlwaysAdjustModulesColumnWidths: false  (default: false)
      dAlwaysAdjustThreadsColumnWidths: false  (default: false)
      dQmlInspector.ShowAppOnTop: false  (default: false)
      dShowQmlObjectTree: true  (default: true)
      dBreakOnAbort: false  (default: false)
      dBreakOnFatal: false  (default: false)
      dAlwaysAdjustSnapshotsColumnWidths: false  (default: false)
      dAlwaysAdjustRegistersColumnWidths: false  (default: false)
      dBreakOnThrow: false  (default: false)
      dSelectedPluginBreakpointsPattern: .*  (default: .*)
      dBreakOnWarning: false  (default: false)
      dBreakOnCatch: false  (default: false)
      dState changed from DebuggerNotReady(0) to EngineSetupRequested(1) [master]
      dQUEUE: SETUP ENGINE
      dCALL: SETUP ENGINE
       Launching C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\cdb.exe -aqtcreatorcdbext.dll -lines -G -c .idle_cmd !qtcreatorcdbext.idle -y cache*C:\Users\ak\AppData\Local\Temp\symbolcache;srv*http://msdl.microsoft.com/download/symbols Q:\build\breakpoint-Qt_5_3_0_5_3_0_win32\debug\breakpoint.exe
       using C:\Qt\qtcreator-3.1.0\lib\qtcreatorcdbext32\qtcreatorcdbext.dll of 14/04/2014 15:05.
       C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\cdb.exe running as 120
       Microsoft (R) Windows Debugger Version 6.3.9600.16384 X86
       Copyright (c) Microsoft Corporation. All rights reserved.
       CommandLine: Q:\build\breakpoint-Qt_5_3_0_5_3_0_win32\debug\breakpoint.exe
       ************* Symbol Path validation summary **************
       Response                         Time (ms)     Location
       Deferred                                       cache*C:\Users\ak\AppData\Local\Temp\symbolcache
       Deferred                                       srv*http://msdl.microsoft.com/download/symbols
       Symbol search path is: cache*C:\Users\ak\AppData\Local\Temp\symbolcache;srv*http://msdl.microsoft.com/download/symbols
       Executable search path is: 
       ModLoad: 012b0000 012c1000   breakpoint.exe
       ModLoad: 77a70000 77bd8000   ntdll.dll
       ModLoad: 771d0000 77310000   C:\Windows\SysWOW64\KERNEL32.DLL
       ModLoad: 778d0000 7799f000   C:\Windows\SysWOW64\KERNELBASE.dll
       ModLoad: 56860000 570de000   Q:\5.3.0-win32\lib\Qt5Cored.dll
       ModLoad: 56790000 56859000   C:\Windows\SysWOW64\MSVCP120D.dll
       ModLoad: 565d0000 5678f000   C:\Windows\SysWOW64\MSVCR120D.dll
       ModLoad: 75730000 7587f000   C:\Windows\SysWOW64\USER32.dll
       ModLoad: 75d50000 76efd000   C:\Windows\SysWOW64\SHELL32.dll
       ModLoad: 754c0000 755cc000   C:\Windows\SysWOW64\ole32.dll
       ModLoad: 76fc0000 77038000   C:\Windows\SysWOW64\ADVAPI32.dll
       ModLoad: 77540000 7758d000   C:\Windows\SysWOW64\WS2_32.dll
       ModLoad: 75620000 75728000   C:\Windows\SysWOW64\GDI32.dll
       ModLoad: 76f00000 76fbe000   C:\Windows\SysWOW64\msvcrt.dll
       ModLoad: 75880000 759ce000   C:\Windows\SysWOW64\combase.dll
       ModLoad: 770e0000 77121000   C:\Windows\SysWOW64\SHLWAPI.dll
       ModLoad: 775d0000 77681000   C:\Windows\SysWOW64\RPCRT4.dll
       ModLoad: 77060000 7709e000   C:\Windows\SysWOW64\sechost.dll
       ModLoad: 77050000 77057000   C:\Windows\SysWOW64\NSI.dll
       ModLoad: 754a0000 754bd000   C:\Windows\SysWOW64\SspiCli.dll
       ModLoad: 75490000 75499000   C:\Windows\SysWOW64\CRYPTBASE.dll
       ModLoad: 75430000 75483000   C:\Windows\SysWOW64\bcryptPrimitives.dll
       (f8c.f9c): Break instruction exception - code 80000003 (first chance)
       *** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntdll.dll - 
       eax=00000000 ebx=00000000 ecx=bbc50000 edx=00000000 esi=7f02e000 edi=00000000
       eip=77b1da8e esp=008ef4ec ebp=008ef518 iopl=0         nv up ei pl zr na pe nc
       cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
       ntdll!LdrInitShimEngineDynamic+0x75a:
       77b1da8e cc              int     3
       cdb: Reading initial command '.idle_cmd !qtcreatorcdbext.idle'
       Execute when idle: !qtcreatorcdbext.idle
       0:000>
      <l+t
      <l+s
      dNOTE: ENGINE SETUP OK
      dState changed from EngineSetupRequested(1) to EngineSetupOk(3) [master]
      dQUEUE: SETUP INFERIOR
      dState changed from EngineSetupOk(3) to InferiorSetupRequested(4) [master]
      dQUEUE: SETUP INFERIOR
      dCALL: SETUP INFERIOR
      <bu1002 `C:\projects\breakpoint\main.cpp:11`
      <!qtcreatorcdbext.breakpoints -t 0 -v
      <sxn 0x4000001f
      <.asm source_line
      <!qtcreatorcdbext.setparameter maxStringLength=10000 maxStackDepth=20
      <!qtcreatorcdbext.pid -t 1
      dATTEMPT SYNC
       Source options are 1:
            1/t - Step/trace by source line
       Source options are 5:
            1/t - Step/trace by source line
            4/s - List source code at prompt
       *** WARNING: Unable to verify checksum for breakpoint.exe
       Matched: breakpoint!main+0x51 (012b2531)
       Matched: breakpoint!<lambda_4afd7091f6bff58cbc561d13a89bf95e>::operator()+0x2d (012b25dd)
       Matched: breakpoint!<lambda_4afd7091f6bff58cbc561d13a89bf95e>::<helper_func_cdecl>+0x2a (012b261a)
       Matched: breakpoint!<lambda_4afd7091f6bff58cbc561d13a89bf95e>::operator void (__cdecl*)(void) (012b2620)
       Matched: breakpoint!<lambda_4afd7091f6bff58cbc561d13a89bf95e>::<helper_func_stdcall>+0x2a (012b265a)
       Matched: breakpoint!<lambda_4afd7091f6bff58cbc561d13a89bf95e>::operator void (__stdcall*)(void) (012b2660)
       Matched: breakpoint!<lambda_4afd7091f6bff58cbc561d13a89bf95e>::<helper_func_fastcall>+0x2a (012b269a)
       Matched: breakpoint!<lambda_4afd7091f6bff58cbc561d13a89bf95e>::operator void (__fastcall*)(void) (012b26a0)
       Matched: breakpoint!<lambda_4afd7091f6bff58cbc561d13a89bf95e>::<helper_func_vectorcall>+0x2a (012b26da)
       Matched: breakpoint!<lambda_4afd7091f6bff58cbc561d13a89bf95e>::operator void (__vectorcall*)(void) (012b26e0)
       Ambiguous symbol error at '`C:\projects\breakpoint\main.cpp:11`'
       1 breakpoint(s) pending...
       Assembly options: source_line
       Qt Creator CDB extension version 3.1 32 bit built Apr 14 2014.
      dTaking notice of pid 3980
      dNOTE: INFERIOR SETUP OK
      dState changed from InferiorSetupRequested(4) to InferiorSetupOk(6) [master]
      dState changed from InferiorSetupOk(6) to EngineRunRequested(7) [master]
      dQUEUE: RUN ENGINE
      dCALL: RUN ENGINE
      <g
      
      dNOTE: ENGINE RUN AND INFERIOR RUN OK
      sRunning.
      dState changed from EngineRunRequested(7) to InferiorRunOk(11) [master]
       ModLoad: 75b80000 75ba5000   C:\Windows\SysWOW64\IMM32.DLL
       ModLoad: 773b0000 774a7000   C:\Windows\SysWOW64\MSCTF.dll
       ModLoad: 702c0000 70336000   C:\Windows\SysWOW64\SHCORE.dll
       ModLoad: 72d60000 72d6e000   C:\Windows\SysWOW64\profapi.dll
       ModLoad: 70450000 70470000   C:\Windows\SysWOW64\winmm.dll
       ModLoad: 70420000 70440000   C:\Windows\SysWOW64\WINMMBASE.dll
       ModLoad: 770a0000 770da000   C:\Windows\SysWOW64\cfgmgr32.dll
       ModLoad: 72de0000 72dff000   C:\Windows\SysWOW64\DEVOBJ.dll
       ModLoad: 70340000 7041b000   C:\Windows\SysWOW64\uxtheme.dll
       ModLoad: 70550000 70568000   C:\Windows\SysWOW64\dwmapi.dll
      
       The timer timed out.
      
       The timer timed out.
      
       The timer timed out.
      
       The timer timed out.
      
      dQUIT DEBUGGER REQUESTED IN STATE 11
      dState changed from InferiorRunOk(11) to InferiorStopRequested(13) [master]
      dCALL: INTERRUPT INFERIOR
      sAttempting to interrupt.
       Interrupting process 3980...
      dInterrupted 3980
       (f8c.3ec): Break instruction exception - code 80000003 (first chance)
       *** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Windows\SysWOW64\KERNEL32.DLL - 
      s
      sException at 0x77a99d1c, code: 0x80000003: breakpoint, flags=0x0 (first chance) in ntdll!DbgBreakPoint
       eax=7f02a000 ebx=00000000 ecx=00000000 edx=77b1af80 esi=00000000 edi=00000000
       eip=77a99d1c esp=028cfc68 ebp=028cfc94 iopl=0         nv up ei pl zr na pe nc
       cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
       ntdll!DbgBreakPoint:
              77a99d1c cc              int     3
       *** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Windows\SysWOW64\USER32.dll - 
      sInterrupted.
      dNOTE: INFERIOR STOP OK
      dNOTE: ... WHILE DYING. 
      dNOTE: ... FORWARDING TO 'STOP OK'. 
      dState changed from InferiorStopRequested(13) to InferiorStopOk(14) [master]
      dState changed from InferiorStopOk(14) to InferiorShutdownRequested(17) [master]
      dQUEUE: SHUTDOWN INFERIOR
      dNOTE: ... IGNORING STOP MESSAGE
      dShutdown request detected...
      dCALL: SHUTDOWN INFERIOR
      dINFERIOR SUCCESSFULLY SHUT DOWN
      dState changed from InferiorShutdownRequested(17) to InferiorShutdownOk(19) [master]
      dState changed from InferiorShutdownOk(19) to EngineShutdownRequested(20) [master]
      dQUEUE: SHUTDOWN ENGINE
      dCALL: SHUTDOWN ENGINE
      <q
       CDB exited (0)
      dNOTE: ENGINE SHUTDOWN OK
      dState changed from EngineShutdownRequested(20) to EngineShutdownOk(22) [master]
      dState changed from EngineShutdownOk(22) to DebuggerFinished(23) [master]
      dQUEUE: FINISH DEBUGGER
      dNOTE: FINISH DEBUGGER
      dHANDLE RUNCONTROL FINISHED
      sDebugger finished.
      

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              davschul David Schulz
              andrew.knight Andrew Knight
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes