google / bloaty

Bloaty: a size profiler for binaries

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Is the Demangle ComplexityGuard necessary?

breese opened this issue · comments

I frequently encounter valid long mangled names that -d shortsymbols fails to demangle because of the ComplexityGuard. Examples of long mangled names are Boost.Spririt grammer types.

If I disable the ComplexityGuard then everything works just fine.

Can we remove the ComplexityGuard, or perhaps add an option to by-pass it?

I think the ComplexityGuard is important to prevent stack overflow from an arbitrarily nested symbol. However the static limits may be set too low.

You reminded me that I've been meaning to remove Bloaty's copy of the demangler in favor of ABSL, which has now open-sourced this separately. I've implemented this in: #227

Could you raise this issue in https://github.com/abseil/abseil-cpp? If real symbols are overflowing the ComplexityGuard that could be a good argument for upping the static limits.