Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt Creator and other tools
  4. QTCreator GDB in Windows works correctly only once per project
Qt 6.11 is out! See what's new in the release blog

QTCreator GDB in Windows works correctly only once per project

Scheduled Pinned Locked Moved Qt Creator and other tools
2 Posts 1 Posters 1.2k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    AScholer
    wrote on last edited by
    #1

    Using Qt 5.1.1 for Windows 32-bit (with MinGW 4.8), when debugging GDB wants to drop into dissassembly while debugging code after the first time.

    I make a "Plain C++" project, insert some simple code:

    int x = 5;
    cout << x << endl;
    return 0;

    Build, and debug it with a breakpoint on first line. First time through it debugs just fine stepping through the code with "Step Over". Any debug session after that, it will drop into dissamebly view of ntdll when it hits cout (or anything else library related).

    Operate By Instruction is not checked and there is debug information for my code. It works as expected once, then refuses to.

    I can delete the build folder and the .pro.user file and the project still exhibits the same behavior after a new build. Even tried wiping my QTProject settings folder. There seems to be no way to debug just my code more than once without it wanting to drop into assembly instead of stepping over statements. If I make a new project, I can debug it normally once, then it starts behaving the same way.

    Looking for a fix or suggestions of things to try.

    1 Reply Last reply
    0
    • A Offline
      A Offline
      AScholer
      wrote on last edited by
      #2

      Had a chance to go back...diffed the debugger log on the good initial vs sequential runs. Everything looks similar until I get to this in good run:

      @=thread-exited,id="2",group-id="i1" sThread 2 in group i1 exited ~"[Switching to Thread 5588.0x239c]\n" =thread-selected,id="1" sThread 1 selected@

      Bad runs never have that. Later, this is unique to bad run:

      @>1272^done,threads=[{id="2",target-id="Thread 7148.0x242c",frame=
      {level="0",addr="0x7792fd91",func="ntdll!RtlFindSetBits",args=
      [],from="C:\\\\Windows\\\\system32\\\\ntdll.dll"},state="stopped"},
      //LINES BELOW COMMON TO GOOD+BAD
      {id="1",target-id="Thread 7148.0x1bbc",frame=
      {level="0",addr="0x00401606",func="main",args=
      [],file="..\\\\untitled8\\\\main.cpp",fullname=
      "C:\Users\Andrew\Desktop\untitled8\main.cpp",line="7"},
      state="stopped"}],current-thread-id="1"*@

      Then once it hits the breakpoint, good run shows this:

      @*stopped,reason="end-stepping-range",frame={addr="0x00401620",func="fu0__ZSt4cout",args[], file="..\\untitled8\\main.cpp", fullname="C:\\Users\\Andrew\\Desktop\\untitled8\\main.cpp",line="9"}, thread-id="1",stopped-threads="all"@

      Bad run shows this:

      @>*stopped,reason="signal-received",signal-name="SIGTRAP",signal-meaning="Trace/breakpoint trap",
      frame={addr="0x7792000d",func="ntdll!LdrFindResource_U",args=[],
      from="C:\\\\Windows\\\\system32\\\\ntdll.dll"},thread-id="2",stopped-threads="all"
      dNOTE: INFERIOR SPONTANEOUS STOP sStopped.
      dState changed from InferiorRunOk(11) to InferiorStopOk(14) [master]
      dSIGTRAP CONSIDERED HARMLESS. CONTINUING.
      sStopped: "signal-received"

      =thread-selected,id="2"
      sThread 2 selected
      <1283-thread-info
      1283^done,threads=[{id="2",target-id="Thread 7148.0x242c",frame=
      {level="0",addr="0x7792000d",func="ntdll!LdrFindResource_U",args=[],
      from="C:\\\\Windows\\\\system32\\\\ntdll.dll"},state="stopped"},
      {id="1",target-id="Thread 7148.0x1bbc",
      frame={level="0",addr="0x756a133d",func="KERNEL32!GetPrivateProfileStructA",
      args=[],from="C:\\\\Windows\\\\syswow64\\\\kernel32.dll"},state="stopped"}],current-thread-id="2"
      <1284-stack-list-frames 0 20
      1284^done,stack=[frame={level="0",addr="0x7792000d",func="ntdll!LdrFindResource_U",
      from="C:\\\\Windows\\\\system32\\\\ntdll.dll"},
      frame={level="1",addr="0x779af926",
      func="ntdll!RtlQueryTimeZoneInformation",
      from="C:\\\\Windows\\\\system32\\\\ntdll.dll"},frame={level="2",addr="0x75f45dd1",func="??"},
      frame={level="3",addr="0x00000000",func="??"}]
      <1285-stack-select-frame 0
      <1286disassemble 0x7791fff9,0x77920071
      <1287bb options:fancy,autoderef,dyntype vars: expanded:return,local,watch,inspect typeformats: formats: watchers:
      1285^done
      &"disassemble 0x7791fff9,0x77920071\n"
      ~"Dump of assembler code from 0x7791fff9 to 0x77920071:\n"
      ~" 0x7791fff9 <ntdll!LdrFindResource_U+60953>:\t"
      &"Cannot access memory at address 0x7791fff9\n"
      1286^error,msg="Cannot access memory at address 0x7791fff9"
      sDisassembler failed: Cannot access memory at address 0x7791fff9@

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved