Followers 0

# Double or more statements in one line, how does the debugger behave?

## 11 posts in this topic

n+=2; Func(n);

If two statements are typed in the same line, how does this affect the debugger? Since the debugger
picks line numbers apparently(in GDB and the Visual Stuido debugger)
1

##### Share on other sites
function call results are used as parameters

Do you mean actual parameters(AKA arguments)?

0

##### Share on other sites
You can always drop down the assembly level if you specifically need to break in between the two statements, in case it matters. Debuggers don't actually work with source code or care in the least about it. It's just the UIs (be it a CLI or GUI interface) that interface with the code and take the concepts you as a programmer mostly deal with (lines in files) and map those to assembly instructions. Likewise, you can debug binaries without debug information, it's just (often significantly) harder because you're stuck manually correlating things in the assembly to the original source.
2

##### Share on other sites

This causes me to think, is there a standard for debuggers?

Searching a while at stackOverflow.com seemed to throw no meaningful results.

Edited by gasto
0

##### Share on other sites

This causes me to think, is there a standard for debuggers?
Searching a while at stackOverflow.com seemed to throw no meaningful results.

Standard for _what_ in debuggers?

Different OSes expose different debugging-relevant features in different ways. Different hardware exposes debugging features in different ways. Different executable formats encode their debug-symbol information in different ways. Different programming languages and runtimes have different semantics that can be debugged and different ways of being hooked into by a debugger.
0

##### Share on other sites

This causes me to think, is there a standard for debuggers?
Searching a while at stackOverflow.com seemed to throw no meaningful results.

Standard for _what_ in debuggers?

Different OSes expose different debugging-relevant features in different ways. Different hardware exposes debugging features in different ways. Different executable formats encode their debug-symbol information in different ways. Different programming languages and runtimes have different semantics that can be debugged and different ways of being hooked into by a debugger.

Hence the question, why do programming languages possess a standard but debuggers don't?

0

##### Share on other sites
Because there is no need for portability, and because if they did add something to ensure portability it would come at a cost that most would be unwilling to pay.

Note that all this debugger talk is explicitly against "debug" builds. These builds are mostly unoptimized and usually quite slow. When you attempt to debug an optimized build the debugger may jump back and forth between lines many times, and will also frequently jump off out regions of assembly that the debugger has no idea where the C++ equivalent is.

There is no need, no desire, and whatever standardization were recommended would likely be ignored.
2

##### Share on other sites

This causes me to think, is there a standard for debuggers?

Searching a while at stackOverflow.com seemed to throw no meaningful results.

There is standard format for debug information: DWARF. MSVC has it's own format that it uses. There is also a slew of front end features that are expected from people using debuggers, mostly based on gdb.

0

## Create an account

Register a new account