(self, f, details)
| 3167 | return |
| 3168 | |
| 3169 | def output_context(self, f, details): |
| 3170 | exception_thread = self.reader.thread_map[self.reader.exception.thread_id] |
| 3171 | f.write("<h3>Exception context</h3>") |
| 3172 | f.write('<div class="code">') |
| 3173 | f.write("Thread id: %d" % exception_thread.id) |
| 3174 | f.write(" Exception code: %08X<br/>" % |
| 3175 | self.reader.exception.exception.code) |
| 3176 | if details == InspectionWebFormatter.CONTEXT_FULL: |
| 3177 | if self.reader.exception.exception.parameter_count > 0: |
| 3178 | f.write(" Exception parameters: ") |
| 3179 | for i in range(0, self.reader.exception.exception.parameter_count): |
| 3180 | f.write("%08x" % self.reader.exception.exception.information[i]) |
| 3181 | f.write("<br><br>") |
| 3182 | |
| 3183 | for r in CONTEXT_FOR_ARCH[self.reader.arch]: |
| 3184 | f.write(HTML_REG_FORMAT % |
| 3185 | (r, self.format_address(self.reader.Register(r)))) |
| 3186 | # TODO(vitalyr): decode eflags. |
| 3187 | if self.reader.arch in [MD_CPU_ARCHITECTURE_ARM, MD_CPU_ARCHITECTURE_ARM64]: |
| 3188 | f.write("<b>cpsr</b>: %s" % bin(self.reader.exception_context.cpsr)[2:]) |
| 3189 | else: |
| 3190 | f.write("<b>eflags</b>: %s" % |
| 3191 | bin(self.reader.exception_context.eflags)[2:]) |
| 3192 | f.write('</div>') |
| 3193 | return |
| 3194 | |
| 3195 | def align_down(self, a, size): |
| 3196 | alignment_correction = a % size |
no test coverage detected