2 # Generate files from a given dwarf.h
3 # Usage: tools/generate-dwarf-functions /usr/include/dwarf.h
5 cat - > src/mc/mc_dwarf_tagnames.cpp <<EOF
6 /* Copyright (c) 2014. The SimGrid Team.
7 * All rights reserved. */
9 /* This program is free software; you can redistribute it and/or modify it
10 * under the terms of the license (GNU LGPL) which comes with this package. */
12 /* Warning: autogenerated, do not edit! */
15 #include <elfutils/libdw.h>
18 #include "mc_object_info.h"
20 /** \brief Get the name of a dwarf tag (DW_TAG_*) from its code
22 * \param tag tag code (see the DWARF specification)
23 * \return name of the tag
26 const char *MC_dwarf_tagname(int tag)
29 $(cat "$1" | grep DW_TAG_ | sed 's/.*\(DW_TAG_[^ ]*\) = \(0x[0-9a-f]*\).*/ case \2: return "\1";/')
31 return "DW_TAG_invalid";
33 return "DW_TAG_unknown";
38 cat - > src/mc/mc_dwarf_attrnames.cpp << EOF
39 /* Copyright (c) 2014. The SimGrid Team.
40 * All rights reserved. */
42 /* This program is free software; you can redistribute it and/or modify it
43 * under the terms of the license (GNU LGPL) which comes with this package. */
45 /* Warning: autogenerated, do not edit! */
50 #include "mc_object_info.h"
52 /** \brief Get the name of an attribute (DW_AT_*) from its code
54 * \param attr attribute code (see the DWARF specification)
55 * \return name of the attribute
57 const char *MC_dwarf_attrname(int attr)
60 $(cat "$1" | grep DW_AT_ | sed 's/.*\(DW_AT_[^ ]*\) = \(0x[0-9a-f]*\).*/ case \2: return "\1";/')
62 return "DW_AT_unknown";