question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Documentation for different paths

See original GitHub issue

This might sound obvious, but there is no real section where each kind of path is at least defined. What is a ${type} path ? In which case is it useful ? It can be interesting to clearly have an explanation on that, to avoid looking for example only at found path when your answer is in a deadended one.

I would have taken care of it myself if I wasn’t one of the people that don’t know what these types are 😃

Issue Analytics

  • State:closed
  • Created 7 years ago
  • Comments:14 (14 by maintainers)

github_iconTop GitHub Comments

1reaction
zarduscommented, Jun 4, 2016

Thank you for these docs, @P1kachu!

I moved the path types discussion into pathgroups.md (as, other than errored, the only thing that influences the “type” of the path is what stash it’s in in the pathgroup) and expanded on it. The result is here: https://github.com/angr/angr-doc/blob/master/docs/pathgroups.md#stash-types. What do you think? Is this what you were looking for for the rest of them?

1reaction
ltfishcommented, May 26, 2016

A path goes to deadended when we cannot continue the execution for some reason, including no more valid instructions, the state becomes unsat, or invalid instruction pointer.

A path goes to found when the execution reaches a basic block which begins at the address that you specified with the find argument in PathGroup.explorer().

looking for example only at found path when your answer is in a deadended one

That means the path you are looking for never had a basic block that starts at the address that you specified. Note that PathGroup.explorer() only checks if the beginning of the basic block is one of the given addresses. If the address appears in the middle of a basic block, it won’t be counted as found right now.

Saying that, we will change this behavior some time in the near future, so that you can put any address in the middle of the target basic block as the address to find. I believe this is way friendlier!

Read more comments on GitHub >

github_iconTop Results From Across the Web

Paths and Operations - Swagger
A single path can support multiple operations, for example GET /users to get ... Operations also support some optional elements for documentation purposes:....
Read more >
How to use multiple paths for Python ... - Stack Overflow
I declared two paths in my conf.py, one for python_modules_A and python_modules_B but when I run make.html, sphinx only recognizes the first path...
Read more >
How to use multiple paths for python ... - Google Groups
I am using sphinx autodoc to document python modules in multiple directories. I already have the rst files for each python module and...
Read more >
os.path — Common pathname manipulations — Python 3.11 ...
Since different operating systems have different path name conventions, there are several versions of this module in the standard library.
Read more >
Route HTTP Requests to Different Paths Example - Mule 4
Route HTTP Requests to Different Paths Example - Mule 4 ... Set Path to employee . ... xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found