• Home
  • Raw
  • Download

Lines Matching +full:intel +full:- +full:common +full:- +full:rules

5 byte-by-byte contents of threads' registers and stacks, without function names
6 or machine-code-to-source mapping data. The processor consults Breakpad symbol
7 files for the information it needs to produce human-readable stack traces from
8 the binary-only minidump file.
10 The platform-specific symbol dumping tools parse the debugging information the
12 stand-alone PDB files), and write that information back out in the Breakpad
22 (except for line records; these are very common, making them the default saves
24 have no "0x" prefix, and use lower-case letters.
55 A `MODULE` record provides meta-information about the module the symbol file
60 For example: `MODULE Linux x86 D3096ED481217FD4C16B29CD9BC208BA0 firefox-bin
61 ` These records provide meta-information about the executable or shared library
75 |:----------|:--------------------|
85 |:----------|:---------------------------------|
86 | x86 | Intel IA-32 |
87 | x86\_64 | AMD64/Intel 64 |
88 | ppc | 32-bit PowerPC |
89 | ppc64 | 64-bit PowerPC |
133 A `FUNC` record describes a source-language function. It has the form:
215 Because they are so common, line records do not begin with a string indicating
216 the record type. All other record types' names use upper-case letters;
217 hexadecimal numbers, like a line record's _address_, use lower-case letters.
233 source line may contribute many non-contiguous blocks of machine code.
286 [StackFrameTypeEnum](http://msdn.microsoft.com/en-us/library/bc5207xw%28VS.100%29.aspx)
288 [Debug Interface Access (DIA)](http://msdn.microsoft.com/en-us/library/x93ctkx8%28VS.100%29.aspx) A…
309 dedicated to preserving the values of any callee-saves registers used by this
330 frame uses the frame pointer register, `%ebp`, as a general-purpose
344 +`_next\_parameter\_size_`+`_saved\_register\_size_`- 8`, and
401 STACK CFI INIT 804c4b0 40 .cfa: $esp 4 + $eip: .cfa 4 - ^
402 STACK CFI 804c4b1 .cfa: $esp 8 + $ebp: .cfa 8 - ^
426 * You should be able to recover the values of callee-saves registers. These
428 in its own stack frame before using them and re-loading them before
435 Given rules for recovering the values of a function's caller's registers, we can
436 walk up the stack. Starting with the current set of registers --- the PC of the
437 instruction we're currently executing, the current stack pointer, etc. --- we
451 rules.
455 For example, suppose we have a machine with 32-bit registers, one-byte
462 func+0: sp -= 16 ; allocate space for stack frame
463 func+1: sp[12] = r0 ; save 4-byte r0 at sp+12
465 func+10: sp -= 4; *sp = x ; push some 4-byte x on the stack
475 |:-----------------|:---------|:------------------------|:------------------------|:----|:---------|
478 | func+2 | sp+16 | `cfa[-4]` | | | `cfa[0]` |
479 | func+11 | sp+20 | `cfa[-4]` | | | `cfa[0]` |
498 "callee-saves" and "caller-saves" registers. The callee must restore the
499 values of "callee-saves" registers before returning (if it uses them at
500 all), whereas the callee is free to use "caller-saves" registers without
501 restoring their values. A function that uses caller-saves registers
505 * Exactly where the CFA points in the frame --- at the return address? below
506 it? At some fixed point within the frame? --- is a question of definition
509 architecture- specific code to know what significance to assign the CFA, if
512 To save space, the most common type of CFI record only mentions the table
514 actually mention the non-blank entries here:
517 |:---------|:--------|:------------------------|:------------------------|:----|:---------|
520 | func+2 | | `cfa[-4]` | | | |
528 _expression<sub>n</sub>_. The values of any callee-saves registers not mentioned
529 are assumed to be unchanged. (`STACK CFI` records never mention caller-saves
530 registers.) These rules apply starting at _address_ and continue up to, but not
537 registers whose recovery rules have changed from the previous CFI record. There
543 Each expression is a breakpad-style postfix expression. Expressions may contain
559 Other registers' rules may refer to this. If no rule is provided for the
563 counter. We use `.ra` instead of the architecture-specific name for the
566 The Breakpad stack walker requires that there be rules in force for `.cfa` and
567 `.ra` at every code address from which it unwinds. If those rules are not
577 STACK CFI 1002 $r0: .cfa 4 - ^