Code::Blocks Forums
Developer forums (C::B DEVELOPMENT STRICTLY!) => Development => Topic started by: Anbang24 on February 09, 2023, 04:09:35 am
-
In current version of C::B, when we start GDB, it executes "run" command inside GDB. If there is any breakpoint in the source, the program will run and stop at the first breakpoint. However, if there is no breakpoint in the source, then the program will run through.
As I know, many programming beginners hope the program automatically stops at the first executable statement in main(), this will be more convenient for them. So, I suggest to execute "start" command inside GDB when we start a debugging.
-
For some reference:
GDB Command Reference - start command https://visualgdb.com/gdbreference/commands/start
It means:
start command
Sets a temporary breakpoint on main() and starts executing a program under GDB.
For C/C++ programs the start command is equivalent to the following command sequence:
tbreak main
run
-
Probably this can be added as a new debugger setting, defaulting to current behaviour.
-
Probably this can be added as a new debugger setting, defaulting to current behaviour.
+1.
-
void GDB_driver::Start(bool breakOnEntry) already executes "start" if the parameter is true.
Start() is called by Debug() from four places:
- From RunToCursor() using false
- From AttachToProcess(), also false
- From OnStart(), also false
- From OnStep() using true
I think OnStart() is where we must make it configurable, but I have no time currently to do it.