Details
-
Bug
-
Resolution: Unresolved
-
P4: Low
-
None
-
Qt Creator 14.0.1
-
None
Description
Stepping in/over for some breakpoints stopped working in the latest qtc versions ~v13 or v14 (don't remember when it exactly happened).
If I press F10/F11 on these breakpoints nothing happens, it stays on the same line. If I disable the Settings - Debugger - CDB - Use Python dumper then I can step these breakpoints. I'm pretty sure there is some bug in these python scripts.
I also tried to disable/enable all the possible options and tried to step (~15 settings options) and stepping starts working only if I disable these Python dumpers.
I also tried qmake/CMake builds, tried to disable enable ccache, /Z7 and /Zi compile options for PDB-s and stepping still doesn't work.
I'm attaching Debugger log when I press F10 on breakpoint like this (I cleared the Debugger log before I have pressed the F10).
I also tried Visual Studio 2022 to step over the breakpoint I can't Step over in qtc and in VS2022 it works.
I can still set another breakpoint in the next (deeper) method and press F5 (continue) and I'm able to hit another next (deeper) breakpoint and from this deeper method step back to the previous method (I'm going to show this in the video as it's hard to describe).
I also tried to remove all the new Python dumpers from the QTCREATORBUG-25865 and it didn't help.
I'm going to record it as how it looks like. Here is the link to the screencast. (Even compressed video has more than 30MB limit, so I had to upload it to Youtube).
This is the method and the breakpoint is on the first line; there is nothing only the QStringList as parameter and std::optional<QString> as the return value, nothing fancy:
std::optional<QString> CompleteCommand::getCurrentTomCommand(const QStringList &commandlineArgSplitted) const { if (commandlineArgSplitted.size() < 2 || isLongOption(commandlineArgSplitted[1])) return std::nullopt; if (commandlineArgSplitted.size() > 2 && !isOptionArgument(commandlineArgSplitted[1])) return application().guessCommandNameForComplete(commandlineArgSplitted[1]); return std::make_optional(commandlineArgSplitted[1]); }