Developer forums (C::B DEVELOPMENT STRICTLY!) > Development

suggest to use "start" command to start GDB

(1/1)

Anbang24:
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.

ollydbg:
For some reference:

GDB Command Reference - start command https://visualgdb.com/gdbreference/commands/start

It means:


--- Quote ---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

--- End quote ---

Miguel Gimenez:
Probably this can be added as a new debugger setting, defaulting to current behaviour.

ollydbg:

--- Quote from: Miguel Gimenez on February 10, 2023, 02:06:28 pm ---Probably this can be added as a new debugger setting, defaulting to current behaviour.

--- End quote ---

+1.

Miguel Gimenez:
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.
 

Navigation

[0] Message Index

Go to full version