The output of the expressions section changes even when running `context` multiple times after each other. The output variables in GDB are counted up when reexecuting the watched commands for example. The other sections don't change their output. This caused the history to be extended infinitely when using `ctxp` while having a `cwatch` command executed.
Special case the `expressions` context section in the history handling to avoid reevaluating the watched commands/expressions while browsing the history. This doesn't add the context output to the history when the expressions VALUES change somehow like it is done for the other sections, but since we cannot know if gdb counted up their output variable names from $1 to $2 or the value changed, this is a compromise.
When gdb is started and context is disabled by clearing `context-sections` before a context output was ever issued, the context history failed to handle the empty history. It assumed that there would always be data in one of the sections after running the context command.
* Allow reentrant memory management calls in the heap tracker
* Defer deletion of GDB breakpoints and improve handling of `free(0)` and `realloc(..., 0)`
* Display instances of `free(0)` in the output of the heap tracker
* Fix/improve UX of start/sstart/entry on remote targets
Fixes#2584 by checking if the target is remote in `start`, `entry` and `sstart` commands.
* fix lint
When building a customized Docker image containing pwndbg using ubuntu:20.04 as base, the build process does not fail even when setup.sh exits because Ubuntu 20.04 isn't supported anymore.
I think setup.sh should make the Docker image build process fail by emitting non-zero return values.
* Add workaround for deadlock in gdb, when calling gdb.execute inside stop event
* Add workaround for deadlock in gdb, when calling gdb.execute inside stop event
* Fix#2549: block config.<name> assignments
This commit blocks `config.<param> = <value>` assignments as they should be done via `config.<param>.value = <value>`
instead.
* Update config.py
* add .value
* Added a workaround to correctly handle broken registers in unicorn
* Disable emulate when unicorn report error
* Refactor: disable emulate when error
* add workaround for gdbserver, exception: Remote 'g' packet reply is too long
* Fix workaround for gdbserver, for single events
* cleanup redundant class
* cleanup _inner_handler
* fix poetry not finding the pwndbg folder
Manifested with error message:
Detected outdated Pwndbg dependencies (poetry.lock). Updating.
Poetry could not find a pyproject.toml file in <calling dir> or its parents
when pwndbg gets sourced from gdb
Co-authored-by: patryk4815 <patryk.sondej@gmail.com>
* add type to param, also fix lldbinit.py
---------
Co-authored-by: patryk4815 <patryk.sondej@gmail.com>
* Port commands to agnostic: procinfo, pid. Additionally drop unused android support.
Later we should check android support and implement it proper.
* procinfo: drop class