Lift/abstract implementations like C++ std::string
#5504
Labels
Component: Core
Issue needs changes to the core
Effort: Medium
Issue should take < 1 month
Impact: Medium
Issue is impactful with a bad, or no, workaround
Type: Enhancement
Issue is a small enhancement to existing functionality
What is the feature you'd like to have?
It would be cool if Binary Ninja was able to detect and abstract implementations like C++'s
std::string
and similar; which could leave the actual decompiled functions that make use of it much simpler looking.Is your feature request related to a problem?
This afternoon I spent a while going through a bunch of size checks + memory allocations to try and figure out what was going on; and at the end of it I learned that most of the complexity seems to just be the internals of
std::string
's workings.Are any alternative solutions acceptable?
Unsure.
Additional Information:
Example 'raw' Function that seems to be using
std::string
I'm not sure that the following is strictly 100% accurate, but at least representationally, I think it is closer (and definitely simpler) to what the original code (without low level implementation details of
std::string
) might have looked like. It's possible it still include low level details that could be removed as well:Given this code example, we could also look at the cross references on functions such as the following, to potentially find more implementations:
std::__1::vector<std::__...allocator<char> > > >::push_back.6444(&p1, &p2);
std::__vector_base_common<true>::__throw_length_error();
std::__1::__throw_length_error.6399();
std::__basic_string_common<true>::__throw_length_error();
Further Reading
See Also
The text was updated successfully, but these errors were encountered: