Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge Dev into Master! 18.10 release #371

Merged
merged 63 commits into from
Oct 29, 2018
Merged

Merge Dev into Master! 18.10 release #371

merged 63 commits into from
Oct 29, 2018

Conversation

Grazfather
Copy link
Collaborator

@Grazfather Grazfather commented Oct 26, 2018

Features:

  • scan: Search for addresses from one section within another section
  • Offset functions: $_heap(), $_got(), etc, for used in gdb expressions
  • A bunch of commands now let you press enter to repeat (e.g. deref)
  • Hexdump now highlights the values based on address or value (for byte mode)
  • New theme!
  • Registers now are coloured based on the section their value points to. Register name is coloured to show whether it was changed or not.
  • pyenv support.
  • buffer output of get commands to minimize number of writes needed.

Bug fixes:

  • disassembly sometimes failed in variable length architectures when PC was set in the middle of an instruction.
  • Fix commands that fail to read a string when debugging a binary compiled with objective-c

wbowling and others added 30 commits October 6, 2018 17:29
Adds a repeat repeat_count attribute to GenericCommand that allows a
command to determine if it's being called again by the user just
pressing enter. This allows the command, for example to advance forward
through memory, in the case of hexdump.

Hexdump and Dereference now use this.
…sed section addresses (#339)

Add new gdb.Functions that can be used in gdb expressions. Added a set
of 'offset' functions that can be used to add an offset to its argument,
making it easy to get an address relative to a section.
…here the

warning is irrelevant is when debugging in qemu compat mode. We can safely
ignore that case if the qemu flag is set.
The format function doesn't ignore control codes, so we were padding
assuming they were visible.
In context_regs and 'registers' command, instead of colouring the value
of the register based on whether it changed since the last stop, colour
the name. This allows us to colour the value based on the section, as we
do with `deref`.
The ops for a `call` instruction may be something like the following.

call <func_name at filename.c:42>

The current regex will attempt to lookup the global symbol "func_name at
filename.c:42". Instead we should lookup just "func_name".
bufferize takes a function, but we were accidentally passing in the result of invoke, not invoke itself.
We missed an bug we introduced, because it only came up when a return
value that should have been a string but was not was was colorized.
Instead let's let the colour through, and strip it out after.
Grazfather and others added 25 commits October 15, 2018 08:29
Minimize arch-specific code in commands
On ARM, AARCH64, and x86 we were not correctly comparing if two flags
were equal: Because we were comparing the masked value instead of
whether the bit was set, these would NEVER be true.

For example for `ge` on x86, the branch is taken is SF==OF, but we were
comparing  flags&(1<<7) == flags&(1<<11). Even if both flags were set,
we'd be comparing 0b10000000 with 0b100000000000, which would never be
true.
@Grazfather Grazfather requested a review from hugsy October 26, 2018 05:46
@hugsy hugsy self-assigned this Oct 26, 2018
@hugsy hugsy added this to the 2018.10 milestone Oct 26, 2018
Copy link
Owner

@hugsy hugsy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is fantastic! This workflow (all WIP in dev constant unit tests) makes the merging to master a child's play (along with the new version release).

To the all 5 contributors of this new release, congratz and thanks!

@hugsy hugsy merged commit 7b68fe5 into master Oct 29, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants