| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "platform/address_sanitizer.h" | 5 #include "platform/address_sanitizer.h" |
| 6 #include "platform/memory_sanitizer.h" | 6 #include "platform/memory_sanitizer.h" |
| 7 #include "platform/utils.h" | 7 #include "platform/utils.h" |
| 8 | 8 |
| 9 #include "vm/allocation.h" | 9 #include "vm/allocation.h" |
| 10 #include "vm/atomic.h" | 10 #include "vm/atomic.h" |
| (...skipping 1175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1186 ProcessedSampleBuffer* buffer = new(zone) ProcessedSampleBuffer(); | 1186 ProcessedSampleBuffer* buffer = new(zone) ProcessedSampleBuffer(); |
| 1187 | 1187 |
| 1188 const intptr_t length = capacity(); | 1188 const intptr_t length = capacity(); |
| 1189 for (intptr_t i = 0; i < length; i++) { | 1189 for (intptr_t i = 0; i < length; i++) { |
| 1190 Sample* sample = At(i); | 1190 Sample* sample = At(i); |
| 1191 if (sample->ignore_sample()) { | 1191 if (sample->ignore_sample()) { |
| 1192 // Bad sample. | 1192 // Bad sample. |
| 1193 continue; | 1193 continue; |
| 1194 } | 1194 } |
| 1195 if (!sample->head_sample()) { | 1195 if (!sample->head_sample()) { |
| 1196 // An inner sample in a chain of samples. | 1196 // An inner sample in a chain of samples. |
| 1197 continue; | 1197 continue; |
| 1198 } | 1198 } |
| 1199 if (sample->isolate() != filter->isolate()) { | 1199 if (sample->isolate() != filter->isolate()) { |
| 1200 // Another isolate. | 1200 // Another isolate. |
| 1201 continue; | 1201 continue; |
| 1202 } | 1202 } |
| 1203 if (sample->timestamp() == 0) { | 1203 if (sample->timestamp() == 0) { |
| 1204 // Empty. | 1204 // Empty. |
| 1205 continue; | 1205 continue; |
| 1206 } | 1206 } |
| 1207 if (sample->At(0) == 0) { | 1207 if (sample->At(0) == 0) { |
| 1208 // No frames. | 1208 // No frames. |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1221 ProcessedSample* SampleBuffer::BuildProcessedSample( | 1221 ProcessedSample* SampleBuffer::BuildProcessedSample( |
| 1222 Sample* sample, | 1222 Sample* sample, |
| 1223 const CodeLookupTable& clt) { | 1223 const CodeLookupTable& clt) { |
| 1224 Thread* thread = Thread::Current(); | 1224 Thread* thread = Thread::Current(); |
| 1225 Zone* zone = thread->zone(); | 1225 Zone* zone = thread->zone(); |
| 1226 | 1226 |
| 1227 ProcessedSample* processed_sample = new(zone) ProcessedSample(); | 1227 ProcessedSample* processed_sample = new(zone) ProcessedSample(); |
| 1228 | 1228 |
| 1229 // Copy state bits from sample. | 1229 // Copy state bits from sample. |
| 1230 processed_sample->set_timestamp(sample->timestamp()); | 1230 processed_sample->set_timestamp(sample->timestamp()); |
| 1231 processed_sample->set_tid(sample->tid()); |
| 1231 processed_sample->set_vm_tag(sample->vm_tag()); | 1232 processed_sample->set_vm_tag(sample->vm_tag()); |
| 1232 processed_sample->set_user_tag(sample->user_tag()); | 1233 processed_sample->set_user_tag(sample->user_tag()); |
| 1233 if (sample->is_allocation_sample()) { | 1234 if (sample->is_allocation_sample()) { |
| 1234 processed_sample->set_allocation_cid(sample->allocation_cid()); | 1235 processed_sample->set_allocation_cid(sample->allocation_cid()); |
| 1235 } | 1236 } |
| 1236 processed_sample->set_first_frame_executing(!sample->exit_frame_sample()); | 1237 processed_sample->set_first_frame_executing(!sample->exit_frame_sample()); |
| 1237 | 1238 |
| 1238 // Copy stack trace from sample(s). | 1239 // Copy stack trace from sample(s). |
| 1239 bool truncated = false; | 1240 bool truncated = false; |
| 1240 Sample* current = sample; | 1241 Sample* current = sample; |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1280 return next_sample; | 1281 return next_sample; |
| 1281 } | 1282 } |
| 1282 | 1283 |
| 1283 | 1284 |
| 1284 ProcessedSample::ProcessedSample() | 1285 ProcessedSample::ProcessedSample() |
| 1285 : pcs_(kSampleSize), | 1286 : pcs_(kSampleSize), |
| 1286 timestamp_(0), | 1287 timestamp_(0), |
| 1287 vm_tag_(0), | 1288 vm_tag_(0), |
| 1288 user_tag_(0), | 1289 user_tag_(0), |
| 1289 allocation_cid_(-1), | 1290 allocation_cid_(-1), |
| 1290 truncated_(false) { | 1291 truncated_(false), |
| 1292 timeline_trie_(NULL) { |
| 1291 } | 1293 } |
| 1292 | 1294 |
| 1293 | 1295 |
| 1294 void ProcessedSample::FixupCaller(const CodeLookupTable& clt, | 1296 void ProcessedSample::FixupCaller(const CodeLookupTable& clt, |
| 1295 uword pc_marker, | 1297 uword pc_marker, |
| 1296 uword* stack_buffer) { | 1298 uword* stack_buffer) { |
| 1297 const CodeDescriptor* cd = clt.FindCode(At(0)); | 1299 const CodeDescriptor* cd = clt.FindCode(At(0)); |
| 1298 if (cd == NULL) { | 1300 if (cd == NULL) { |
| 1299 // No Dart code. | 1301 // No Dart code. |
| 1300 return; | 1302 return; |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1361 } | 1363 } |
| 1362 } | 1364 } |
| 1363 | 1365 |
| 1364 | 1366 |
| 1365 ProcessedSampleBuffer::ProcessedSampleBuffer() | 1367 ProcessedSampleBuffer::ProcessedSampleBuffer() |
| 1366 : code_lookup_table_(new CodeLookupTable(Thread::Current())) { | 1368 : code_lookup_table_(new CodeLookupTable(Thread::Current())) { |
| 1367 ASSERT(code_lookup_table_ != NULL); | 1369 ASSERT(code_lookup_table_ != NULL); |
| 1368 } | 1370 } |
| 1369 | 1371 |
| 1370 } // namespace dart | 1372 } // namespace dart |
| OLD | NEW |