Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(184)

Side by Side Diff: src/common/dwarf/dwarf2reader.cc

Issue 1971793002: Update to handle dsym files that end with a header. (Closed) Base URL: https://chromium.googlesource.com/breakpad/breakpad.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 Google Inc. All Rights Reserved. 1 // Copyright (c) 2010 Google Inc. All Rights Reserved.
2 // 2 //
3 // Redistribution and use in source and binary forms, with or without 3 // Redistribution and use in source and binary forms, with or without
4 // modification, are permitted provided that the following conditions are 4 // modification, are permitted provided that the following conditions are
5 // met: 5 // met:
6 // 6 //
7 // * Redistributions of source code must retain the above copyright 7 // * Redistributions of source code must retain the above copyright
8 // notice, this list of conditions and the following disclaimer. 8 // notice, this list of conditions and the following disclaimer.
9 // * Redistributions in binary form must reproduce the above 9 // * Redistributions in binary form must reproduce the above
10 // copyright notice, this list of conditions and the following disclaimer 10 // copyright notice, this list of conditions and the following disclaimer
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 header_.length = initial_length; 259 header_.length = initial_length;
260 260
261 assert(headerptr + 2 < buffer_ + buffer_length_); 261 assert(headerptr + 2 < buffer_ + buffer_length_);
262 header_.version = reader_->ReadTwoBytes(headerptr); 262 header_.version = reader_->ReadTwoBytes(headerptr);
263 headerptr += 2; 263 headerptr += 2;
264 264
265 assert(headerptr + reader_->OffsetSize() < buffer_ + buffer_length_); 265 assert(headerptr + reader_->OffsetSize() < buffer_ + buffer_length_);
266 header_.abbrev_offset = reader_->ReadOffset(headerptr); 266 header_.abbrev_offset = reader_->ReadOffset(headerptr);
267 headerptr += reader_->OffsetSize(); 267 headerptr += reader_->OffsetSize();
268 268
269 assert(headerptr + 1 < buffer_ + buffer_length_); 269 // Compare against less than or equal because this may be the last
270 // section in the file.
271 assert(headerptr + 1 <= buffer_ + buffer_length_);
270 header_.address_size = reader_->ReadOneByte(headerptr); 272 header_.address_size = reader_->ReadOneByte(headerptr);
271 reader_->SetAddressSize(header_.address_size); 273 reader_->SetAddressSize(header_.address_size);
272 headerptr += 1; 274 headerptr += 1;
273 275
274 after_header_ = headerptr; 276 after_header_ = headerptr;
275 277
276 // This check ensures that we don't have to do checking during the 278 // This check ensures that we don't have to do checking during the
277 // reading of DIEs. header_.length does not include the size of the 279 // reading of DIEs. header_.length does not include the size of the
278 // initial length. 280 // initial length.
279 assert(buffer_ + initial_length_size + header_.length <= 281 assert(buffer_ + initial_length_size + header_.length <=
(...skipping 2443 matching lines...) Expand 10 before | Expand all | Expand 10 after
2723 uint64 insn_offset) { 2725 uint64 insn_offset) {
2724 fprintf(stderr, 2726 fprintf(stderr,
2725 "%s: CFI %s at offset 0x%llx in section '%s':" 2727 "%s: CFI %s at offset 0x%llx in section '%s':"
2726 " the DW_CFA_restore_state instruction at offset 0x%llx" 2728 " the DW_CFA_restore_state instruction at offset 0x%llx"
2727 " would clear the CFA rule in effect\n", 2729 " would clear the CFA rule in effect\n",
2728 filename_.c_str(), CallFrameInfo::KindName(kind), offset, 2730 filename_.c_str(), CallFrameInfo::KindName(kind), offset,
2729 section_.c_str(), insn_offset); 2731 section_.c_str(), insn_offset);
2730 } 2732 }
2731 2733
2732 } // namespace dwarf2reader 2734 } // namespace dwarf2reader
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698