Chromium Code Reviews| Index: build/config/compiler/compiler.gni |
| diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni |
| index e8051ec423489bcdf55f449b14b62db9e139b758..143ab78e0bc3fd2288519f3d6cb1005d9c12155e 100644 |
| --- a/build/config/compiler/compiler.gni |
| +++ b/build/config/compiler/compiler.gni |
| @@ -76,20 +76,25 @@ if (is_mac || is_ios) { |
| } else { |
| enabled_frame_pointers = true |
| } |
| +} else if (current_cpu == "arm64") { |
| + # Ensure that stacks from arm64 crash dumps are usable (crbug.com/391706). |
| + enabled_frame_pointers = true; |
| +} else if (current_cpu == "arm") { |
| + # TODO(711784): Building without frame pointers can lead to code which |
| + # triggers some ARM A12/A17 errata. |
|
diandersAtChromium
2017/04/19 17:35:25
Do we think this really happens on Android version
Wez
2017/04/19 18:14:58
That's a good question; I don't see any reason why
|
| + enabled_frame_pointers = true; |
| } else { |
| # Explicitly ask for frame pointers, otherwise: |
| # * Stacks may be missing for sanitizer and profiling builds. |
| # * Debug tcmalloc can crash (crbug.com/636489). |
| - # * Stacks may be missing for arm64 crash dumps (crbug.com/391706). |
| - enabled_frame_pointers = |
| - using_sanitizer || enable_profiling || is_debug || current_cpu == "arm64" |
| + enabled_frame_pointers = using_sanitizer || enable_profiling || is_debug; |
| } |
| # Unwinding with frame pointers requires that they are enabled by default for |
| # most translation units, that they are emitted correctly, and that the |
| # compiler or platform provides a way to access them. |
| -if (current_cpu == "arm" && arm_use_thumb) { |
| - # ARM Thumb builds do not emit frame pointers correctly. |
| +if (current_cpu == "arm") { |
| + # We cannot currently unwind ARM32 frame pointers correctly. |
|
erikchen
2017/04/19 02:43:57
Technically, we can never unwind all stacks on any
DmitrySkiba
2017/04/19 15:06:09
Yes, this will break Android heap profiler. We can
Wez
2017/04/19 18:14:58
Oh, interesting: gmx@ stated that we can't unwind
|
| can_unwind_with_frame_pointers = false |
| } else if (is_win) { |
| # Windows 32-bit does provide frame pointers, but the compiler does not |