Merge lp:~ben-hutchings/ensoft-sextant/objdump-filepath-fix into lp:ensoft-sextant

Proposed by Ben Hutchings
Status: Merged
Approved by: Robert
Approved revision: 70
Merged at revision: 41
Proposed branch: lp:~ben-hutchings/ensoft-sextant/objdump-filepath-fix
Merge into: lp:ensoft-sextant
Prerequisite: lp:~ben-hutchings/ensoft-sextant/wierd-names-clean
Diff against target: 202 lines (+107/-72)
2 files modified
src/sextant/objdump_parser.py (+10/-7)
src/sextant/test_resources/parser_test.dump (+97/-65)
To merge this branch: bzr merge lp:~ben-hutchings/ensoft-sextant/objdump-filepath-fix
Reviewer Review Type Date Requested Status
Robert Approve
Review via email: mp+244848@code.launchpad.net

Commit message

Objdump_parser file path extraction is now more flexible, file paths do not need to be on the next line of the source file. This allows objdump_parser's use with non-grepped disassembly files.

Description of the change

Objdump_parser file path extraction is now more flexible, file paths do not need to be on the next line of the source file. This allows objdump_parser's use with non-grepped disassembly files.

To post a comment you must log in.
Revision history for this message
Robert (rjwills) :
review: Approve
Revision history for this message
Martin Morrison (isoschiz) wrote :
Revision history for this message
Martin Morrison (isoschiz) wrote :

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/sextant/objdump_parser.py'
2--- src/sextant/objdump_parser.py 2014-12-16 12:03:14 +0000
3+++ src/sextant/objdump_parser.py 2014-12-16 12:03:14 +0000
4@@ -233,17 +233,20 @@
5
6 for line in self._file:
7 if to_add:
8- file_line = line.startswith('/')
9- source = line.split(':')[0] if file_line else None
10- if source:
11+ if line.startswith('/'):
12+ source = line.split(':')[0]
13 # Prune out the relative parts of the filepath.
14 source = source.rsplit('./', 1)[-1]
15
16- self._add_function(current_function, source)
17- to_add = False
18-
19- if file_line:
20+ self._add_function(current_function, source)
21+ to_add = False
22 continue
23+ elif line.endswith('>:\n'):
24+ # Reached the next function definition without getting
25+ # a source file for the current function
26+ self._add_function(current_function, None)
27+ to_add = False
28+
29
30 if line.startswith('Disassembly'):
31 # 'Disassembly of section <name>:\n'
32
33=== modified file 'src/sextant/test_resources/parser_test.dump'
34--- src/sextant/test_resources/parser_test.dump 2014-11-20 17:25:59 +0000
35+++ src/sextant/test_resources/parser_test.dump 2014-12-16 12:03:14 +0000
36@@ -1,69 +1,101 @@
37 Disassembly of section .init:
38-080482b4 <_init>:
39- 80482b8: call 8048350 <__x86.get_pc_thunk.bx>
40- 80482cd: call 8048300 <__gmon_start__@plt>
41+080482d4 <_init>:
42+ 80482d8: call 8048380 <__x86.get_pc_thunk.bx>
43+ 80482ed: call 8048330 <__gmon_start__@plt>
44 Disassembly of section .plt:
45-080482e0 <printf@plt-0x10>:
46-080482f0 <printf@plt>:
47-08048300 <__gmon_start__@plt>:
48-08048310 <__libc_start_main@plt>:
49+08048300 <printf@plt-0x10>:
50+08048310 <printf@plt>:
51+08048320 <puts@plt>:
52+08048330 <__gmon_start__@plt>:
53+08048340 <__libc_start_main@plt>:
54 Disassembly of section .text:
55-08048320 <_start>:
56- 804833c: call 8048310 <__libc_start_main@plt>
57-08048350 <__x86.get_pc_thunk.bx>:
58-08048360 <deregister_tm_clones>:
59- 8048386: call *%eax
60-08048390 <register_tm_clones>:
61- 80483c3: call *%edx
62-080483d0 <__do_global_dtors_aux>:
63- 80483df: call 8048360 <deregister_tm_clones>
64-080483f0 <frame_dummy>:
65- 804840f: call *%eax
66-0804841d <normal>:
67-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:14
68-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:18
69-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:20
70- 8048430: call 8048458 <wierd$name>
71-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:21
72- 8048443: call 80482f0 <printf@plt>
73-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:22
74- 8048451: call *%eax
75-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:24
76-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:25
77-08048458 <wierd$name>:
78-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:29
79-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:30
80-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:31
81-08048460 <duplicates>:
82-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:35
83-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:36
84-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:39
85- 804847b: call 80482f0 <printf@plt>
86-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:40
87- 804848e: call 80482f0 <printf@plt>
88-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:42
89- 8048499: call 804841d <normal>
90-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:43
91- 80484a4: call 804841d <normal>
92-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:45
93- 80484b2: call *%eax
94-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:46
95- 80484bd: call *%eax
96-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:48
97-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:49
98-080484c4 <main>:
99-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:53
100-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:54
101- 80484d4: call 804841d <normal>
102-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:55
103- 80484e0: call 8048460 <duplicates>
104-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:56
105-/home/benhutc/filter-search/src/sextant/test_resources/parser_test.c:57
106-080484f0 <__libc_csu_init>:
107- 80484f6: call 8048350 <__x86.get_pc_thunk.bx>
108- 804850e: call 80482b4 <_init>
109- 804853b: call *-0xf8(%ebx,%edi,4)
110-08048560 <__libc_csu_fini>:
111+08048350 <_start>:
112+ 804836c: call 8048340 <__libc_start_main@plt>
113+08048380 <__x86.get_pc_thunk.bx>:
114+08048390 <deregister_tm_clones>:
115+ 80483b6: call *%eax
116+080483c0 <register_tm_clones>:
117+ 80483f3: call *%edx
118+08048400 <__do_global_dtors_aux>:
119+ 804840f: call 8048390 <deregister_tm_clones>
120+08048420 <frame_dummy>:
121+ 804843f: call *%eax
122+0804844d <inl_func>:
123+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_header.h:6
124+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_header.h:7
125+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_header.h:8
126+08048457 <wierd$name>:
127+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_file2.c:12
128+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_file2.c:13
129+ 8048463: call 804844d <inl_func>
130+ 804846b: call 8048478 <__be_name>
131+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_file2.c:14
132+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_file2.c:15
133+08048478 <__be_name>:
134+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_file2.c:19
135+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_file2.c:20
136+ 8048485: call 8048320 <puts@plt>
137+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_file2.c:21
138+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_file2.c:22
139+08048492 <normal>:
140+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:14
141+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:18
142+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:20
143+ 80484a5: call 8048457 <wierd$name>
144+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:21
145+ 80484b0: call 804844d <inl_func>
146+ 80484c0: call 8048310 <printf@plt>
147+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:22
148+ 80484ce: call *%eax
149+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:24
150+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:25
151+080484d5 <duplicates>:
152+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:29
153+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:30
154+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:33
155+ 80484f0: call 8048310 <printf@plt>
156+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:34
157+ 8048503: call 8048310 <printf@plt>
158+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:36
159+ 804850e: call 8048492 <normal>
160+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:37
161+ 8048519: call 8048492 <normal>
162+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:39
163+ 8048527: call *%eax
164+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:40
165+ 8048532: call *%eax
166+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:42
167+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:43
168+08048539 <main>:
169+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:47
170+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:48
171+ 8048549: call 8048492 <normal>
172+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:49
173+ 8048555: call 80484d5 <duplicates>
174+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:50
175+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_test.c:51
176+08048561 <inl_func>:
177+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_header.h:6
178+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_header.h:7
179+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_header.h:8
180+0804856b <wierd$name>:
181+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_file2.c:12
182+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_file2.c:13
183+ 8048577: call 8048561 <inl_func>
184+ 804857f: call 804858c <__be_name>
185+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_file2.c:14
186+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_file2.c:15
187+0804858c <__be_name>:
188+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_file2.c:19
189+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_file2.c:20
190+ 8048599: call 8048320 <puts@plt>
191+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_file2.c:21
192+/home/benhutc/wierd-names-merge/src/sextant/test_resources/parser_file2.c:22
193+080485b0 <__libc_csu_init>:
194+ 80485b6: call 8048380 <__x86.get_pc_thunk.bx>
195+ 80485ce: call 80482d4 <_init>
196+ 80485fb: call *-0xf8(%ebx,%edi,4)
197+08048620 <__libc_csu_fini>:
198 Disassembly of section .fini:
199-08048564 <_fini>:
200- 8048568: call 8048350 <__x86.get_pc_thunk.bx>
201+08048624 <_fini>:
202+ 8048628: call 8048380 <__x86.get_pc_thunk.bx>

Subscribers

People subscribed via source and target branches