pmachata / dwgrep

a tool for querying Dwarf (debuginfo) graphs
http://pmachata.github.io/dwgrep/
GNU General Public License v3.0
53 stars 10 forks source link

DW_AT_const_value on an enumeration_type with DW_AT_type #6

Closed pmachata closed 9 years ago

pmachata commented 9 years ago

Code:

enum N{A};
template<N n>class gah{};
gah<A> meh;

Build with GCC trunk (a6f19a7c6b). The built object:

$ cat a.out | gzip -c | base64
H4sIANXYulQAA5VVzW7TQBCetd381GloFCFakYORQCSUOk5pK1QgLYr4iagihFSBemjlJEscNXYi
26nKqY/AGyCOcONdeBLOIMGuvSbOxovLSPHsfPvNzLejjX357PC5hBBEhqAJs2hmljRbH7DnKqzA
MVkpQZwL0pSIJHVAuU8LIvqUn9I9JUt3loI+SHpJXMaB9YCetbEFSH5Alnl5pqaE7hTLqlxcvUEq
KkjOqWq7vKc+UlGZFK2CnKuopPBtUNUmoZHiEpKLqhpRMgahtMuUlN0mS4q3y/vr0hqpXqEyQ+0J
JwbYCvbDQ/wsrpBnMCjyQ3VrbOP6BPtu3bcnAAPT0nu9YHIvOkdaa2ND29EN3dC2jMaO0WjsalV8
McHu0MaOb45q2uYA5mvUWYmp4w0HDu5rQ8enZR9XOzVj2iR1W609rUqq1/5dGkD3Pti+2SXed0Nv
RSsfX/ig903fBL3reaC7eGTqfdydDk6HzvsxsLXZ7br4fG7bdE1ngL2IMRo6OFqT6qD3xjZVALoz
9rFOdG56vtk7S5zs/9vNcPCQ4fADAZ+/w7cYJnP4VfPvQnhLRPk8n48bCVg8/yQln95CBRbtWzb0
X1hcZLzoRq8x/0TQ/9MV+78W5P9iXkvJfwXJ+t/l5nVS/fRIvP5TQf8KA3dT+p8xzODwN4z4VpAf
+XNB/ldGuJeSf5mgidr3JDCBW4LFuxfP/5iST2MJFs1if6iHLOEa+RVgcf55Qf/P7P4VUvqLjPIU
+PE7aU8WVJETT0LxJIUUT7p5FOffJhGeFeB5Ab4swPmpRLi6gNF5l2L6/56cfRbo55FapHgZ5t+F
hRgeV1ni8BqLr8fw+NevzvH3WbzN4YcsPorpjZ82rnMphv8B/8TKUHAIAAA=

Reproducer:

$ ./dwgrep/dwgrep ~/src/gcc/build/a.out -e 'entry ?TAG_template_value_parameter @AT_const_value'
dwgrep: /home/petr/proj/dwgrep-older/libzwerg/atval.cc:473: std::unique_ptr<value_producer<value> > {anonymous}::handle_at_dependent_value(Dwarf_Attribute, Dwarf_Die, std::shared_ptr<dwfl_context>): Assertion `! "unhandled: DW_AT_const_value on a DIE whose" " DW_AT_type is a DW_TAG_enumeration_type with" " DW_AT_type"' failed.
Aborted (core dumped)