Support setting the program entry point when the user is using the debugger without a binary view

Open
#530 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale

Research direction

Start by tracing how the debugger handles an executable path and adds the program-entry breakpoint when a binary view is available. Review the Mach-O parsing example using BinaryViewType["Mach-O"].parse(raw_view), then determine how the parsed entry point can be applied without the binary view. Done means the entry breakpoint is available in debugger sessions without a binary view.

Written by the indexing model from the issue text.

Description

breakpoint enhancement Impact: Medium

Now that we can already use the debugger without a binary view, we lack the ability to add the breakpoint at the program entry point. This is of course reasonable since we originally rely on the information in the binary view set that breakpoint. Now that the info is gone, we cannot set it in the old way.

That said, we still have the path for the executable, and we can do a quick parse of the file and get its entry point, then apply the entry breakpoint accordingly. This is similar to something like this:

hex(BinaryViewType["Mach-O"].parse(raw_view).start)

Relevant to https://github.com/Vector35/debugger/issues/206

Dominant language
C++
Stars
331
Forks
33
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Vector35/debugger

All issues in Vector35/debugger

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.