ida-minsc: An InvalidTypeOrValue exception is being raised when trying to fetch the type for a function being listed.
database.functions.list() throws exception, the user probably wanted to list all functions.
database.functions.list()
internal.interface.tinfo.function_details(0x401029, '') : The type that was received ('') for the specified function (0x401029) was not a function type.
Also database.functions.list(like=‘*’) throws Exception:
database.functions.list(like='*')
InvalidTypeOrValueError: internal.interface.tinfo.function_details(0x401029, '') : The type that was received ('') for the specified function (0x401029) was not a function type.
About this issue
- Original URL
- State: closed
- Created 7 months ago
- Comments: 20 (10 by maintainers)
I closed the PR, and will close this issue. If you feel that is in error, let me know and I’ll re-open.
Btw, you should consider the “persistence-refactor” branch if you believe the things in this plugin are actually useful to you. It’s development is still ongoing, but it significantly improves structure arithmetic, all the matchers allow iterable types, tagging and searches are improved, operand references can be used for referencing specific operands, all references now bundle their access (‘rwx’), etc. There’s quite a lot. The “master” branch is about a year behind, and is before i decided to go “all-in” on some of the original features.
As an example, since you’re looking at
database.functions.list
, you can do.Or if you want to distinguish calls in the current function that dereference an address.
If you have any questions, feel free to ask in the discussions.
Lol. And that, hands-down, is why Python is a terrible programming language.
I added
to my code and now it all works well.
I found the problem and it was in one of my scripts (that I didn’t knew was loaded). It was this line:
That is messing up the if-statment in
tinfo_t with function prototypes have a size of 0 and when there is no bool it checks for len and if that returns 0 then the if statement fails.
Sorry to take up your time!
Now is the database.functions.list() also working as expected ❤️
I tried it and I got the following trace log: