Hi all
Using gdb in the following c++ code:
template<typename T>
struct Wrap{
T w;
};
int main() {
auto l1 = [x = 5](int a){return x+a;};
auto l2 = [x = 6](int a){return x+1;};
auto l3 = [x = 7](){return 0.5;};
Wrap<decltype(l1)> w1{l1};
Wrap<decltype(l2)> w2{l2};
Wrap<decltype(l3)> w3{l3};
return 0;
}
(gdb) info types Wrap
All types matching regular expression "Wrap":
File C:\Sandbox\sampleproj\main.cpp:
8: Wrap<main()::<lambda()> >;
8: Wrap<main()::<lambda(int)> >;
It looks like the debugging information for Wrap<decltype(l1)> and
Wrap<decltype(l2)> are generated with the same name.
Also readelf --debug-dump=info confirms this insight.
This is preventing me to properly analyze the contents of Wrap objects in gdb.
Is there a way to work around this issue?
Kind regards
Mario