OLD | NEW |
1 // Copyright (c) 2006, Google Inc. | 1 // Copyright (c) 2006, Google Inc. |
2 // All rights reserved. | 2 // All rights reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // * Redistributions of source code must retain the above copyright | 8 // * Redistributions of source code must retain the above copyright |
9 // notice, this list of conditions and the following disclaimer. | 9 // notice, this list of conditions and the following disclaimer. |
10 // * Redistributions in binary form must reproduce the above | 10 // * Redistributions in binary form must reproduce the above |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 private: | 131 private: |
132 // Outputs the line/address pairs for each line in the enumerator. | 132 // Outputs the line/address pairs for each line in the enumerator. |
133 // Returns true on success. | 133 // Returns true on success. |
134 bool PrintLines(IDiaEnumLineNumbers *lines); | 134 bool PrintLines(IDiaEnumLineNumbers *lines); |
135 | 135 |
136 // Outputs a function address and name, followed by its source line list. | 136 // Outputs a function address and name, followed by its source line list. |
137 // block can be the same object as function, or it can be a reference | 137 // block can be the same object as function, or it can be a reference |
138 // to a code block that is lexically part of this function, but | 138 // to a code block that is lexically part of this function, but |
139 // resides at a separate address. | 139 // resides at a separate address. |
140 // Returns true on success. | 140 // Returns true on success. |
141 bool PrintFunction(IDiaSymbol *function, IDiaSymbol *block); | 141 bool PrintFunction(IDiaSymbol *function, IDiaSymbol *block, bool is_x86); |
142 | 142 |
143 // Outputs all functions as described above. Returns true on success. | 143 // Outputs all functions as described above. Returns true on success. |
144 bool PrintFunctions(); | 144 bool PrintFunctions(); |
145 | 145 |
146 // Outputs all of the source files in the session's pdb file. | 146 // Outputs all of the source files in the session's pdb file. |
147 // Returns true on success. | 147 // Returns true on success. |
148 bool PrintSourceFiles(); | 148 bool PrintSourceFiles(); |
149 | 149 |
150 // Outputs all of the frame information necessary to construct stack | 150 // Outputs all of the frame information necessary to construct stack |
151 // backtraces in the absence of frame pointers. Returns true on success. | 151 // backtraces in the absence of frame pointers. Returns true on success. |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
198 | 198 |
199 // Find the PE file corresponding to the loaded PDB file, and | 199 // Find the PE file corresponding to the loaded PDB file, and |
200 // set the code_file_ member. Returns false on failure. | 200 // set the code_file_ member. Returns false on failure. |
201 bool FindPEFile(); | 201 bool FindPEFile(); |
202 | 202 |
203 // Returns the function name for a symbol. If possible, the name is | 203 // Returns the function name for a symbol. If possible, the name is |
204 // undecorated. If the symbol's decorated form indicates the size of | 204 // undecorated. If the symbol's decorated form indicates the size of |
205 // parameters on the stack, this information is returned in stack_param_size. | 205 // parameters on the stack, this information is returned in stack_param_size. |
206 // Returns true on success. If the symbol doesn't encode parameter size | 206 // Returns true on success. If the symbol doesn't encode parameter size |
207 // information, stack_param_size is set to -1. | 207 // information, stack_param_size is set to -1. |
208 static bool GetSymbolFunctionName(IDiaSymbol *function, BSTR *name, | 208 static bool GetSymbolFunctionName(IDiaSymbol *function, bool is_x86, |
| 209 BSTR *name, |
209 int *stack_param_size); | 210 int *stack_param_size); |
210 | 211 |
211 // Returns the number of bytes of stack space used for a function's | 212 // Returns the number of bytes of stack space used for a function's |
212 // parameters. function must have the tag SymTagFunction. In the event of | 213 // parameters. function must have the tag SymTagFunction. In the event of |
213 // a failure, returns 0, which is also a valid number of bytes. | 214 // a failure, returns 0, which is also a valid number of bytes. |
214 static int GetFunctionStackParamSize(IDiaSymbol *function); | 215 static int GetFunctionStackParamSize(IDiaSymbol *function); |
215 | 216 |
216 // The filename of the PE file corresponding to the currently-open | 217 // The filename of the PE file corresponding to the currently-open |
217 // pdb file. | 218 // pdb file. |
218 wstring code_file_; | 219 wstring code_file_; |
(...skipping 15 matching lines...) Expand all Loading... |
234 ImageMap image_map_; | 235 ImageMap image_map_; |
235 | 236 |
236 // Disallow copy ctor and operator= | 237 // Disallow copy ctor and operator= |
237 PDBSourceLineWriter(const PDBSourceLineWriter&); | 238 PDBSourceLineWriter(const PDBSourceLineWriter&); |
238 void operator=(const PDBSourceLineWriter&); | 239 void operator=(const PDBSourceLineWriter&); |
239 }; | 240 }; |
240 | 241 |
241 } // namespace google_breakpad | 242 } // namespace google_breakpad |
242 | 243 |
243 #endif // _PDB_SOURCE_LINE_WRITER_H__ | 244 #endif // _PDB_SOURCE_LINE_WRITER_H__ |
OLD | NEW |