OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/abort.h" | 5 #include "base/abort.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 | 8 |
9 namespace tcmalloc { | 9 namespace tcmalloc { |
10 | 10 |
11 // Try not to inline so we can find Abort() call from stack trace. | 11 // Try not to inline so we can find Abort() call from stack trace. |
12 ATTRIBUTE_NOINLINE void Abort() { | 12 ATTRIBUTE_NOINLINE void Abort() { |
13 // Make a segmentation fault to force abort. Writing to a specific address | 13 // Make a segmentation fault to force abort. Writing to a specific address |
14 // so it's easier to find on crash stacks. | 14 // so it's easier to find on crash stacks. |
15 *(reinterpret_cast<volatile char*>(NULL) + 57) = 0x2001; | 15 *(reinterpret_cast<volatile char*>(NULL) + 57) = 0x21; |
16 } | 16 } |
17 | 17 |
18 } // namespace tcmalloc | 18 } // namespace tcmalloc |
OLD | NEW |