mirror of
https://github.com/go-delve/delve.git
synced 2025-10-27 20:23:41 +08:00
proc,dwarf/line: support is_stmt and prologue_end flags
Go1.11 uses the is_stmt flag of .debug_line to communicate which assembly instructions are good places for breakpoints, we should respect this flag. These changes were introduced by: * https://go-review.googlesource.com/c/go/+/102435/ Additionally when setting next breakpoints ignore all PC addresses that belong to the same line as the one currently under at the cursor. This matches the behavior of gdb and avoids stopping multiple times at the heading line of a for statement with go1.11. Change: https://go-review.googlesource.com/c/go/+/110416 adds the prologue_end flag to the .debug_line section to communicate the end of the stack-split prologue. We should use it instead of pattern matching the disassembly when available. Fixes #550 type of interfaces 'c7cde8b'.
This commit is contained in:
@ -32,6 +32,9 @@ type DebugLineInfo struct {
|
||||
|
||||
// lastMachineCache[pc] is a state machine stopped at an address after pc
|
||||
lastMachineCache map[uint64]*StateMachine
|
||||
|
||||
// logSuppressedErrors enables logging of otherwise suppressed errors
|
||||
logSuppressedErrors bool
|
||||
}
|
||||
|
||||
type FileEntry struct {
|
||||
@ -143,3 +146,8 @@ func readFileEntry(info *DebugLineInfo, buf *bytes.Buffer, exitOnEmptyPath bool)
|
||||
|
||||
return entry
|
||||
}
|
||||
|
||||
// LogSuppressedErrors enables or disables logging of suppressed errors
|
||||
func (dbl *DebugLineInfo) LogSuppressedErrors(v bool) {
|
||||
dbl.logSuppressedErrors = v
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user