OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 <stdint.h> | 5 #include <stdint.h> |
6 #include <stdio.h> | 6 #include <stdio.h> |
7 #include <stdlib.h> | 7 #include <stdlib.h> |
8 | 8 |
9 #include "vm/gdbjit_linux.h" | 9 #include "vm/gdbjit_linux.h" |
10 | 10 |
11 extern "C" { | 11 extern "C" { |
12 typedef enum { | 12 typedef enum { |
13 JIT_NOACTION = 0, | 13 JIT_NOACTION = 0, |
14 JIT_REGISTER_FN, | 14 JIT_REGISTER_FN, |
15 JIT_UNREGISTER_FN | 15 JIT_UNREGISTER_FN |
16 } jit_actions_t; | 16 } jit_actions_t; |
17 | 17 |
18 struct jit_code_entry { | 18 struct jit_code_entry { |
19 struct jit_code_entry *next_entry; | 19 struct jit_code_entry* next_entry; |
20 struct jit_code_entry *prev_entry; | 20 struct jit_code_entry* prev_entry; |
21 const char *symfile_addr; | 21 const char* symfile_addr; |
22 uint64_t symfile_size; | 22 uint64_t symfile_size; |
23 }; | 23 }; |
24 | 24 |
25 struct jit_descriptor { | 25 struct jit_descriptor { |
26 uint32_t version; | 26 uint32_t version; |
27 /* This type should be jit_actions_t, but we use uint32_t | 27 /* This type should be jit_actions_t, but we use uint32_t |
28 to be explicit about the bitwidth. */ | 28 to be explicit about the bitwidth. */ |
29 uint32_t action_flag; | 29 uint32_t action_flag; |
30 struct jit_code_entry *relevant_entry; | 30 struct jit_code_entry* relevant_entry; |
31 struct jit_code_entry *first_entry; | 31 struct jit_code_entry* first_entry; |
32 }; | 32 }; |
33 | 33 |
34 /* GDB puts a breakpoint in this function. */ | 34 /* GDB puts a breakpoint in this function. */ |
35 void __attribute__((noinline)) __jit_debug_register_code() { } | 35 void __attribute__((noinline)) __jit_debug_register_code() { } |
36 | 36 |
37 /* Make sure to specify the version statically, because the | 37 /* Make sure to specify the version statically, because the |
38 debugger may check the version before we can set it. */ | 38 debugger may check the version before we can set it. */ |
39 struct jit_descriptor __jit_debug_descriptor = { 1, 0, 0, 0 }; | 39 struct jit_descriptor __jit_debug_descriptor = { 1, 0, 0, 0 }; |
40 | 40 |
41 static struct jit_code_entry* first_dynamic_region = NULL; | 41 static struct jit_code_entry* first_dynamic_region = NULL; |
(...skipping 26 matching lines...) Expand all Loading... |
68 __jit_debug_descriptor.action_flag = JIT_UNREGISTER_FN; | 68 __jit_debug_descriptor.action_flag = JIT_UNREGISTER_FN; |
69 __jit_debug_descriptor.relevant_entry = iterator; | 69 __jit_debug_descriptor.relevant_entry = iterator; |
70 __jit_debug_descriptor.first_entry = first_dynamic_region; | 70 __jit_debug_descriptor.first_entry = first_dynamic_region; |
71 __jit_debug_register_code(); | 71 __jit_debug_register_code(); |
72 iterator = iterator->prev_entry; | 72 iterator = iterator->prev_entry; |
73 } | 73 } |
74 first_dynamic_region = NULL; | 74 first_dynamic_region = NULL; |
75 last_dynamic_region = NULL; | 75 last_dynamic_region = NULL; |
76 } | 76 } |
77 }; | 77 }; |
OLD | NEW |