blob: 18f7d35b844d2585e3905c8e21ca03e95d4952d3 [file] [log] [blame]
Eli Benderskydb51f262013-03-23 06:33:09 -07001#-------------------------------------------------------------------------------
2# elftools
3#
4# Eli Bendersky (eliben@gmail.com)
5# This code is in the public domain
6#-------------------------------------------------------------------------------
7
Eli Benderskyc4a4c072011-09-17 15:28:28 +03008# Just a script for playing around with pyelftools during testing
9# please ignore it!
10#
Eli Benderskyeefac9a2012-01-27 07:08:05 +020011from __future__ import print_function
Eli Benderskyc4a4c072011-09-17 15:28:28 +030012
elibenc6db4c42011-09-20 16:03:59 +030013import sys, pprint
Eli Benderskye0735d52011-09-08 20:12:44 +030014from elftools.elf.structs import ELFStructs
15from elftools.elf.elffile import ELFFile
16from elftools.elf.sections import *
17
Eli Benderskyef943b72011-11-23 16:01:52 +020018from elftools.elf.relocation import *
Eli Benderskyddeedc42011-11-18 05:55:06 +020019
Eli Benderskye0735d52011-09-08 20:12:44 +030020
Eli Bendersky1b69efc2011-12-20 06:45:00 +020021stream = open('test/testfiles/exe_simple64.elf', 'rb')
Eli Benderskye0735d52011-09-08 20:12:44 +030022
23efile = ELFFile(stream)
Eli Benderskyeefac9a2012-01-27 07:08:05 +020024print('elfclass', efile.elfclass)
25print('===> %s sections!' % efile.num_sections())
26print(efile.header)
Eli Bendersky90a3f6b2011-12-28 06:37:16 +020027
28dinfo = efile.get_dwarf_info()
29from elftools.dwarf.locationlists import LocationLists
30from elftools.dwarf.descriptions import describe_DWARF_expr
31llists = LocationLists(dinfo.debug_loc_sec.stream, dinfo.structs)
Eli Bendersky26e41c42011-12-28 09:21:14 +020032for loclist in llists.iter_location_lists():
Eli Benderskyeefac9a2012-01-27 07:08:05 +020033 print('----> loclist!')
Eli Bendersky26e41c42011-12-28 09:21:14 +020034 for li in loclist:
Eli Benderskyeefac9a2012-01-27 07:08:05 +020035 print(li)
36 print(describe_DWARF_expr(li.loc_expr, dinfo.structs))
Eli Bendersky90a3f6b2011-12-28 06:37:16 +020037
38