lldb 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -4
  3. data/README.md +86 -2
  4. data/Rakefile +36 -0
  5. data/bindings/constants.yml +137 -0
  6. data/bindings/surface.yml +3072 -0
  7. data/ext/lldb/discovery.rb +101 -0
  8. data/ext/lldb/extconf.rb +206 -88
  9. data/ext/lldb/lldb_wrapper.cpp +7934 -877
  10. data/ext/lldb/lldb_wrapper.h +596 -333
  11. data/lib/lldb/address.rb +81 -0
  12. data/lib/lldb/api_support.rb +23 -6
  13. data/lib/lldb/attach_info.rb +122 -0
  14. data/lib/lldb/block.rb +121 -0
  15. data/lib/lldb/breakpoint.rb +11 -6
  16. data/lib/lldb/breakpoint_location.rb +20 -5
  17. data/lib/lldb/broadcaster.rb +79 -0
  18. data/lib/lldb/command_interpreter.rb +9 -4
  19. data/lib/lldb/command_return_object.rb +24 -5
  20. data/lib/lldb/compile_unit.rb +64 -0
  21. data/lib/lldb/context.rb +81 -0
  22. data/lib/lldb/debugger.rb +55 -12
  23. data/lib/lldb/error.rb +50 -3
  24. data/lib/lldb/event.rb +109 -0
  25. data/lib/lldb/expression_options.rb +124 -0
  26. data/lib/lldb/ffi_bindings.rb +313 -31
  27. data/lib/lldb/file_spec.rb +90 -0
  28. data/lib/lldb/file_spec_list.rb +78 -0
  29. data/lib/lldb/frame.rb +109 -17
  30. data/lib/lldb/function.rb +121 -0
  31. data/lib/lldb/instruction.rb +83 -0
  32. data/lib/lldb/instruction_list.rb +68 -0
  33. data/lib/lldb/launch_info.rb +145 -19
  34. data/lib/lldb/line_entry.rb +75 -0
  35. data/lib/lldb/listener.rb +96 -0
  36. data/lib/lldb/memory_region_info.rb +8 -3
  37. data/lib/lldb/module.rb +46 -5
  38. data/lib/lldb/native.rb +36 -0
  39. data/lib/lldb/native_buffer.rb +32 -0
  40. data/lib/lldb/native_handle.rb +60 -0
  41. data/lib/lldb/native_lifecycle.rb +64 -0
  42. data/lib/lldb/native_string_array.rb +34 -0
  43. data/lib/lldb/process.rb +102 -40
  44. data/lib/lldb/symbol.rb +117 -0
  45. data/lib/lldb/symbol_context.rb +9 -4
  46. data/lib/lldb/target.rb +69 -67
  47. data/lib/lldb/thread.rb +51 -18
  48. data/lib/lldb/type.rb +40 -3
  49. data/lib/lldb/type_member.rb +67 -0
  50. data/lib/lldb/types.rb +69 -4
  51. data/lib/lldb/value.rb +27 -17
  52. data/lib/lldb/value_list.rb +9 -5
  53. data/lib/lldb/version.rb +1 -1
  54. data/lib/lldb/watchpoint.rb +26 -9
  55. data/lib/lldb.rb +78 -10
  56. data/lldb.gemspec +4 -1
  57. data/rbs_collection.yaml +1 -1
  58. data/script/check_bindings +259 -0
  59. data/script/guard_c_exports +139 -0
  60. data/sig/lldb/ffi_bindings.rbs +247 -21
  61. data/sig/lldb/weak_ref.rbs +7 -0
  62. metadata +30 -6
  63. data/ext/lldb/Makefile +0 -24
  64. data/ext/lldb/liblldb_wrapper.dylib +0 -0
  65. data/ext/lldb/lldb_wrapper.o +0 -0
  66. data/ext/lldb/mkmf.log +0 -24
@@ -0,0 +1,139 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'optparse'
5
+
6
+ ROOT = File.expand_path('..', __dir__)
7
+ HEADER = File.join(ROOT, 'ext/lldb/lldb_wrapper.h')
8
+ SOURCE = File.join(ROOT, 'ext/lldb/lldb_wrapper.cpp')
9
+ SURFACE = File.join(ROOT, 'bindings/surface.yml')
10
+
11
+ options = { write: false }
12
+ OptionParser.new do |parser|
13
+ parser.banner = 'Usage: script/guard_c_exports [--write]'
14
+ parser.on('--write', 'Rewrite the C ABI exports with exception guards') { options[:write] = true }
15
+ end.parse!
16
+
17
+ def declarations(source)
18
+ source = source.gsub(%r{/\*.*?\*/|//[^\n]*}, '')
19
+ pattern = /(?:^|\n)\s*(?<return_type>[A-Za-z_][A-Za-z0-9_:<>*&\s]*?)\s+(?<name>lldb_[A-Za-z0-9_]+)\s*\((?<arguments>[^;]*)\)\s*(?:LLDB_WRAPPER_NOEXCEPT\s*)?;/m
20
+ source.to_enum(:scan, pattern).map do
21
+ Regexp.last_match.named_captures.transform_values(&:strip)
22
+ end
23
+ end
24
+
25
+ def matching_parenthesis(source, opening)
26
+ depth = 0
27
+ source.byteslice(opening..).each_byte.with_index do |byte, offset|
28
+ depth += 1 if byte == 40
29
+ depth -= 1 if byte == 41
30
+ return opening + offset if depth.zero?
31
+ end
32
+ raise "unclosed function parameter list at #{opening}"
33
+ end
34
+
35
+ def matching_brace(source, opening)
36
+ depth = 0
37
+ source.byteslice(opening..).each_byte.with_index do |byte, offset|
38
+ depth += 1 if byte == 123
39
+ depth -= 1 if byte == 125
40
+ return opening + offset if depth.zero?
41
+ end
42
+ raise "unclosed function body at #{opening}"
43
+ end
44
+
45
+ def definition(source, name)
46
+ pattern = /\b#{Regexp.escape(name)}\s*\(/m
47
+ source.to_enum(:scan, pattern).each do
48
+ opening = Regexp.last_match.begin(0) + Regexp.last_match[0].index('(')
49
+ closing = matching_parenthesis(source, opening)
50
+ after_parameters = source.byteslice((closing + 1)..).to_s
51
+ next unless after_parameters =~ /\A\s*(?:LLDB_WRAPPER_NOEXCEPT\s*)?\{/m
52
+
53
+ body_opening = closing + 1 + Regexp.last_match[0].index('{')
54
+ return [body_opening, matching_brace(source, body_opening)]
55
+ end
56
+ raise "definition not found for #{name}"
57
+ end
58
+
59
+ def guarded_body?(source, opening)
60
+ source.byteslice((opening + 1)..).to_s.match?(/\A\s*try\s*\{/)
61
+ end
62
+
63
+ def catch_block(return_type)
64
+ failure_return = if return_type == 'void'
65
+ ''
66
+ elsif return_type == 'lldb_ruby_status_t'
67
+ ' return LLDB_RUBY_STATUS_INTERNAL_ERROR;' + 10.chr
68
+ else
69
+ ' return {};' + 10.chr
70
+ end
71
+
72
+ <<~CPP
73
+
74
+ } catch (const std::bad_alloc&) {
75
+ wrapper_set_error_state("native allocation failed across the C ABI");
76
+ #{failure_return} } catch (const std::exception& exception) {
77
+ wrapper_set_error_state(exception.what());
78
+ #{failure_return} } catch (...) {
79
+ wrapper_set_error_state("unknown native exception across the C ABI");
80
+ #{failure_return} }
81
+ CPP
82
+ end
83
+
84
+ def rewrite_header(header, entries)
85
+ rewritten = header.dup
86
+ entries.reverse_each do |entry|
87
+ pattern = /\b#{Regexp.escape(entry.fetch('name'))}\s*\([^;]*?\)\s*/m
88
+ match = rewritten.match(pattern)
89
+ raise "declaration not found for #{entry.fetch('name')}" unless match
90
+ next if rewritten.byteslice(match.end(0), 40).to_s.match?(/\A\s*LLDB_WRAPPER_NOEXCEPT\b/)
91
+
92
+ rewritten.insert(match.end(0), ' LLDB_WRAPPER_NOEXCEPT')
93
+ end
94
+ rewritten
95
+ end
96
+
97
+ def rewrite_source(source, entries)
98
+ edits = entries.map do |entry|
99
+ opening, closing = definition(source, entry.fetch('name'))
100
+ next if guarded_body?(source, opening)
101
+
102
+ noexcept = source.byteslice((opening - 80)...opening).to_s.match?(/LLDB_WRAPPER_NOEXCEPT\s*$/)
103
+ [
104
+ [opening, (noexcept ? '' : ' LLDB_WRAPPER_NOEXCEPT')],
105
+ [opening + 1, "\n try {"],
106
+ [closing, catch_block(entry.fetch('return_type'))]
107
+ ]
108
+ end.compact.flatten(1).sort_by(&:first).reverse
109
+
110
+ rewritten = source.dup
111
+ edits.each { |offset, text| rewritten.insert(offset, text) }
112
+ rewritten
113
+ end
114
+
115
+ def rewrite_surface(surface)
116
+ needle = ['kind: reviewed_no_throw', ' reason: The export is tracked explicitly until its native error boundary is upgraded.'].join(10.chr)
117
+ replacement = ['kind: error_boundary', ' reason: Every export is noexcept and catches native C++ exceptions before crossing the C ABI.'].join(10.chr)
118
+
119
+ surface.gsub(needle, replacement)
120
+ end
121
+
122
+ entries = declarations(File.read(HEADER))
123
+ abort "expected 482 declarations, found #{entries.length}" unless entries.length == 482
124
+
125
+ rewritten_header = rewrite_header(File.read(HEADER), entries)
126
+ rewritten_source = rewrite_source(File.read(SOURCE), entries)
127
+ rewritten_surface = rewrite_surface(File.read(SURFACE))
128
+
129
+ if options[:write]
130
+ File.write(HEADER, rewritten_header)
131
+ File.write(SOURCE, rewritten_source)
132
+ File.write(SURFACE, rewritten_surface)
133
+ puts "guarded #{entries.length} C ABI exports"
134
+ else
135
+ abort 'header requires exception-guard updates' unless rewritten_header == File.read(HEADER)
136
+ abort 'source requires exception-guard updates' unless rewritten_source == File.read(SOURCE)
137
+ abort 'surface ledger requires exception-guard updates' unless rewritten_surface == File.read(SURFACE)
138
+ puts "all #{entries.length} C ABI exports are guarded"
139
+ end
@@ -2,15 +2,32 @@ module LLDB
2
2
  module FFIBindings
3
3
  extend FFI::Library
4
4
 
5
+ EXPECTED_WRAPPER_ABI_VERSION: Integer
6
+ CAPABILITIES: Hash[Symbol, Integer]
7
+ LIBRARY_PATH: String
8
+
5
9
  def self.library_name: () -> String
6
10
  def self.library_path: () -> String
11
+ def self.wrapper_abi_version: () -> Integer
12
+ def self.build_lldb_version: () -> String
13
+ def self.runtime_lldb_version: () -> String
14
+ def self.capability_supported?: (Symbol) -> bool
15
+
16
+ def self.lldb_wrapper_abi_version: () -> Integer
17
+ def self.lldb_wrapper_build_lldb_version: () -> String
18
+ def self.lldb_wrapper_runtime_lldb_version: () -> String
19
+ def self.lldb_wrapper_has_capability: (Integer) -> Integer
20
+ def self.lldb_wrapper_last_error_message: () -> String?
21
+ def self.lldb_wrapper_last_error_code: () -> Integer
22
+ def self.lldb_wrapper_clear_last_error: () -> void
7
23
 
8
24
  # Initialization
9
- def self.lldb_initialize: () -> void
25
+ def self.lldb_initialize: (FFI::Pointer) -> Integer
10
26
  def self.lldb_terminate: () -> void
11
27
 
12
28
  # SBDebugger
13
29
  def self.lldb_debugger_create: () -> FFI::Pointer
30
+ def self.lldb_debugger_create_with_source_init_files: (Integer) -> FFI::Pointer
14
31
  def self.lldb_debugger_destroy: (FFI::Pointer) -> void
15
32
  def self.lldb_debugger_is_valid: (FFI::Pointer) -> Integer
16
33
  def self.lldb_debugger_create_target: (FFI::Pointer, String?, String?, String?, Integer, FFI::Pointer) -> FFI::Pointer
@@ -25,8 +42,40 @@ module LLDB
25
42
  def self.lldb_debugger_get_async: (FFI::Pointer) -> Integer
26
43
  def self.lldb_debugger_get_version_string: () -> String?
27
44
  def self.lldb_debugger_get_command_interpreter: (FFI::Pointer) -> FFI::Pointer
45
+ def self.lldb_debugger_get_broadcaster: (FFI::Pointer) -> FFI::Pointer
46
+ def self.lldb_debugger_get_listener: (FFI::Pointer) -> FFI::Pointer
28
47
  def self.lldb_debugger_handle_command: (FFI::Pointer, String) -> void
29
48
 
49
+ # SBBroadcaster, SBListener, and SBEvent
50
+ def self.lldb_broadcaster_create: (String?) -> FFI::Pointer
51
+ def self.lldb_broadcaster_destroy: (FFI::Pointer) -> void
52
+ def self.lldb_broadcaster_is_valid: (FFI::Pointer) -> Integer
53
+ def self.lldb_broadcaster_get_name: (FFI::Pointer) -> String?
54
+ def self.lldb_broadcaster_add_listener: (FFI::Pointer, FFI::Pointer, Integer) -> Integer
55
+ def self.lldb_broadcaster_remove_listener: (FFI::Pointer, FFI::Pointer, Integer) -> Integer
56
+ def self.lldb_broadcaster_event_type_has_listeners: (FFI::Pointer, Integer) -> Integer
57
+ def self.lldb_broadcaster_broadcast_event_by_type: (FFI::Pointer, Integer, Integer) -> void
58
+ def self.lldb_listener_create: (String?) -> FFI::Pointer
59
+ def self.lldb_listener_destroy: (FFI::Pointer) -> void
60
+ def self.lldb_listener_is_valid: (FFI::Pointer) -> Integer
61
+ def self.lldb_listener_start_listening_for_events: (FFI::Pointer, FFI::Pointer, Integer) -> Integer
62
+ def self.lldb_listener_stop_listening_for_events: (FFI::Pointer, FFI::Pointer, Integer) -> Integer
63
+ def self.lldb_listener_wait_for_event: (FFI::Pointer, Integer) -> FFI::Pointer
64
+ def self.lldb_listener_peek_event: (FFI::Pointer) -> FFI::Pointer
65
+ def self.lldb_listener_next_event: (FFI::Pointer) -> FFI::Pointer
66
+ def self.lldb_event_destroy: (FFI::Pointer) -> void
67
+ def self.lldb_event_is_valid: (FFI::Pointer) -> Integer
68
+ def self.lldb_event_get_type: (FFI::Pointer) -> Integer
69
+ def self.lldb_event_get_data_flavor: (FFI::Pointer) -> String?
70
+ def self.lldb_event_get_broadcaster_class: (FFI::Pointer) -> String?
71
+ def self.lldb_event_get_description: (FFI::Pointer, FFI::Pointer?, Integer) -> Integer
72
+ def self.lldb_event_get_broadcaster: (FFI::Pointer) -> FFI::Pointer
73
+ def self.lldb_event_is_process_event: (FFI::Pointer) -> Integer
74
+ def self.lldb_event_get_process_state: (FFI::Pointer) -> Integer
75
+ def self.lldb_event_get_restarted: (FFI::Pointer) -> Integer
76
+ def self.lldb_event_get_interrupted: (FFI::Pointer) -> Integer
77
+ def self.lldb_event_get_process: (FFI::Pointer) -> FFI::Pointer
78
+
30
79
  # SBTarget
31
80
  def self.lldb_target_destroy: (FFI::Pointer) -> void
32
81
  def self.lldb_target_is_valid: (FFI::Pointer) -> Integer
@@ -34,6 +83,7 @@ module LLDB
34
83
  def self.lldb_target_launch: (FFI::Pointer, FFI::Pointer, FFI::Pointer) -> FFI::Pointer
35
84
  def self.lldb_target_attach_to_process_with_id: (FFI::Pointer, Integer, FFI::Pointer) -> FFI::Pointer
36
85
  def self.lldb_target_attach_to_process_with_name: (FFI::Pointer, String, Integer, FFI::Pointer) -> FFI::Pointer
86
+ def self.lldb_target_attach_with_info: (FFI::Pointer, FFI::Pointer, FFI::Pointer) -> FFI::Pointer
37
87
  def self.lldb_target_breakpoint_create_by_name: (FFI::Pointer, String, String?) -> FFI::Pointer
38
88
  def self.lldb_target_breakpoint_create_by_location: (FFI::Pointer, String, Integer) -> FFI::Pointer
39
89
  def self.lldb_target_breakpoint_create_by_address: (FFI::Pointer, Integer) -> FFI::Pointer
@@ -48,9 +98,11 @@ module LLDB
48
98
  def self.lldb_target_get_breakpoint_at_index: (FFI::Pointer, Integer) -> FFI::Pointer
49
99
  def self.lldb_target_get_process: (FFI::Pointer) -> FFI::Pointer
50
100
  def self.lldb_target_get_executable_path: (FFI::Pointer) -> String?
101
+ def self.lldb_target_get_executable_file: (FFI::Pointer) -> FFI::Pointer
51
102
  def self.lldb_target_get_num_modules: (FFI::Pointer) -> Integer
52
103
  def self.lldb_target_get_module_at_index: (FFI::Pointer, Integer) -> FFI::Pointer
53
104
  def self.lldb_target_evaluate_expression: (FFI::Pointer, String) -> FFI::Pointer
105
+ def self.lldb_target_evaluate_expression_with_options: (FFI::Pointer, String, FFI::Pointer) -> FFI::Pointer
54
106
  def self.lldb_target_read_memory: (FFI::Pointer, Integer, FFI::Pointer, Integer, FFI::Pointer) -> Integer
55
107
  def self.lldb_target_get_address_byte_size: (FFI::Pointer) -> Integer
56
108
  def self.lldb_target_get_triple: (FFI::Pointer) -> String?
@@ -64,20 +116,111 @@ module LLDB
64
116
  # SBLaunchInfo
65
117
  def self.lldb_launch_info_create: (FFI::Pointer?) -> FFI::Pointer
66
118
  def self.lldb_launch_info_destroy: (FFI::Pointer) -> void
119
+ def self.lldb_launch_info_get_num_arguments: (FFI::Pointer) -> Integer
120
+ def self.lldb_launch_info_get_argument_at_index: (FFI::Pointer, Integer) -> String?
67
121
  def self.lldb_launch_info_set_working_directory: (FFI::Pointer, String) -> void
122
+ def self.lldb_launch_info_get_working_directory: (FFI::Pointer) -> String?
68
123
  def self.lldb_launch_info_set_environment_entries: (FFI::Pointer, FFI::Pointer?, Integer) -> void
124
+ def self.lldb_launch_info_get_num_environment_entries: (FFI::Pointer) -> Integer
125
+ def self.lldb_launch_info_get_environment_entry_at_index: (FFI::Pointer, Integer) -> String?
69
126
  def self.lldb_launch_info_get_launch_flags: (FFI::Pointer) -> Integer
70
127
  def self.lldb_launch_info_set_launch_flags: (FFI::Pointer, Integer) -> void
128
+ def self.lldb_launch_info_set_arguments: (FFI::Pointer, FFI::Pointer?, Integer) -> void
129
+ def self.lldb_launch_info_get_executable_file: (FFI::Pointer) -> FFI::Pointer
130
+ def self.lldb_launch_info_set_executable_file: (FFI::Pointer, FFI::Pointer, Integer) -> void
131
+ def self.lldb_launch_info_get_listener: (FFI::Pointer) -> FFI::Pointer
132
+ def self.lldb_launch_info_set_listener: (FFI::Pointer, FFI::Pointer) -> void
133
+ def self.lldb_launch_info_get_process_plugin_name: (FFI::Pointer) -> String?
134
+ def self.lldb_launch_info_set_process_plugin_name: (FFI::Pointer, String) -> void
135
+ def self.lldb_launch_info_get_shell: (FFI::Pointer) -> String?
136
+ def self.lldb_launch_info_set_shell: (FFI::Pointer, String) -> void
137
+ def self.lldb_launch_info_add_close_file_action: (FFI::Pointer, Integer) -> Integer
138
+ def self.lldb_launch_info_add_duplicate_file_action: (FFI::Pointer, Integer, Integer) -> Integer
139
+ def self.lldb_launch_info_add_open_file_action: (FFI::Pointer, Integer, String, Integer, Integer) -> Integer
140
+ def self.lldb_launch_info_add_suppress_file_action: (FFI::Pointer, Integer, Integer, Integer) -> Integer
141
+
142
+ # SBAttachInfo
143
+ def self.lldb_attach_info_create: (Integer) -> FFI::Pointer
144
+ def self.lldb_attach_info_destroy: (FFI::Pointer) -> void
145
+ def self.lldb_attach_info_get_process_id: (FFI::Pointer) -> Integer
146
+ def self.lldb_attach_info_set_process_id: (FFI::Pointer, Integer) -> void
147
+ def self.lldb_attach_info_set_executable: (FFI::Pointer, String) -> void
148
+ def self.lldb_attach_info_set_executable_file: (FFI::Pointer, FFI::Pointer) -> void
149
+ def self.lldb_attach_info_get_wait_for_launch: (FFI::Pointer) -> Integer
150
+ def self.lldb_attach_info_set_wait_for_launch: (FFI::Pointer, Integer) -> void
151
+ def self.lldb_attach_info_get_ignore_existing: (FFI::Pointer) -> Integer
152
+ def self.lldb_attach_info_set_ignore_existing: (FFI::Pointer, Integer) -> void
153
+ def self.lldb_attach_info_get_resume_count: (FFI::Pointer) -> Integer
154
+ def self.lldb_attach_info_set_resume_count: (FFI::Pointer, Integer) -> void
155
+ def self.lldb_attach_info_get_process_plugin_name: (FFI::Pointer) -> String?
156
+ def self.lldb_attach_info_set_process_plugin_name: (FFI::Pointer, String) -> void
157
+ def self.lldb_attach_info_get_listener: (FFI::Pointer) -> FFI::Pointer
158
+ def self.lldb_attach_info_set_listener: (FFI::Pointer, FFI::Pointer) -> void
159
+
160
+ # SBExpressionOptions
161
+ def self.lldb_expression_options_create: () -> FFI::Pointer
162
+ def self.lldb_expression_options_destroy: (FFI::Pointer) -> void
163
+ def self.lldb_expression_options_get_timeout: (FFI::Pointer) -> Integer
164
+ def self.lldb_expression_options_set_timeout: (FFI::Pointer, Integer) -> void
165
+ def self.lldb_expression_options_get_unwind_on_error: (FFI::Pointer) -> Integer
166
+ def self.lldb_expression_options_set_unwind_on_error: (FFI::Pointer, Integer) -> void
167
+ def self.lldb_expression_options_get_ignore_breakpoints: (FFI::Pointer) -> Integer
168
+ def self.lldb_expression_options_set_ignore_breakpoints: (FFI::Pointer, Integer) -> void
169
+ def self.lldb_expression_options_get_fetch_dynamic_value: (FFI::Pointer) -> Integer
170
+ def self.lldb_expression_options_set_fetch_dynamic_value: (FFI::Pointer, Integer) -> void
171
+ def self.lldb_expression_options_get_try_all_threads: (FFI::Pointer) -> Integer
172
+ def self.lldb_expression_options_set_try_all_threads: (FFI::Pointer, Integer) -> void
173
+ def self.lldb_expression_options_get_stop_others: (FFI::Pointer) -> Integer
174
+ def self.lldb_expression_options_set_stop_others: (FFI::Pointer, Integer) -> void
175
+ def self.lldb_expression_options_set_language: (FFI::Pointer, Integer) -> void
176
+ def self.lldb_expression_options_get_suppress_persistent_result: (FFI::Pointer) -> Integer
177
+ def self.lldb_expression_options_set_suppress_persistent_result: (FFI::Pointer, Integer) -> void
178
+
179
+ # SBFileSpec
180
+ def self.lldb_file_spec_create: (String?, Integer) -> FFI::Pointer
181
+ def self.lldb_file_spec_destroy: (FFI::Pointer) -> void
182
+ def self.lldb_file_spec_is_valid: (FFI::Pointer) -> Integer
183
+ def self.lldb_file_spec_exists: (FFI::Pointer) -> Integer
184
+ def self.lldb_file_spec_get_filename: (FFI::Pointer) -> String?
185
+ def self.lldb_file_spec_get_directory: (FFI::Pointer) -> String?
186
+ def self.lldb_file_spec_get_path: (FFI::Pointer, FFI::Pointer?, Integer) -> Integer
187
+ def self.lldb_file_spec_set_filename: (FFI::Pointer, String) -> void
188
+ def self.lldb_file_spec_set_directory: (FFI::Pointer, String) -> void
189
+ def self.lldb_file_spec_list_create: () -> FFI::Pointer
190
+ def self.lldb_file_spec_list_destroy: (FFI::Pointer) -> void
191
+ def self.lldb_file_spec_list_is_valid: (FFI::Pointer) -> Integer
192
+ def self.lldb_file_spec_list_get_size: (FFI::Pointer) -> Integer
193
+ def self.lldb_file_spec_list_append: (FFI::Pointer, FFI::Pointer) -> void
194
+ def self.lldb_file_spec_list_append_if_unique: (FFI::Pointer, FFI::Pointer) -> Integer
195
+ def self.lldb_file_spec_list_clear: (FFI::Pointer) -> void
196
+ def self.lldb_file_spec_list_get_file_spec_at_index: (FFI::Pointer, Integer) -> FFI::Pointer
197
+
198
+ # SBAddress and SBLineEntry
199
+ def self.lldb_address_create: () -> FFI::Pointer
200
+ def self.lldb_address_create_from_load_address: (Integer, FFI::Pointer) -> FFI::Pointer
201
+ def self.lldb_address_destroy: (FFI::Pointer) -> void
202
+ def self.lldb_address_is_valid: (FFI::Pointer) -> Integer
203
+ def self.lldb_address_get_file_address: (FFI::Pointer) -> Integer
204
+ def self.lldb_address_get_load_address: (FFI::Pointer, FFI::Pointer) -> Integer
205
+ def self.lldb_address_get_offset: (FFI::Pointer) -> Integer
206
+ def self.lldb_address_get_line_entry: (FFI::Pointer) -> FFI::Pointer
207
+ def self.lldb_line_entry_destroy: (FFI::Pointer) -> void
208
+ def self.lldb_line_entry_is_valid: (FFI::Pointer) -> Integer
209
+ def self.lldb_line_entry_get_start_address: (FFI::Pointer) -> FFI::Pointer
210
+ def self.lldb_line_entry_get_end_address: (FFI::Pointer) -> FFI::Pointer
211
+ def self.lldb_line_entry_get_file_spec: (FFI::Pointer) -> FFI::Pointer
212
+ def self.lldb_line_entry_get_line: (FFI::Pointer) -> Integer
213
+ def self.lldb_line_entry_get_column: (FFI::Pointer) -> Integer
71
214
 
72
215
  # SBProcess
73
216
  def self.lldb_process_destroy: (FFI::Pointer) -> void
74
217
  def self.lldb_process_is_valid: (FFI::Pointer) -> Integer
75
- def self.lldb_process_continue: (FFI::Pointer) -> Integer
76
- def self.lldb_process_stop: (FFI::Pointer) -> Integer
77
- def self.lldb_process_kill: (FFI::Pointer) -> Integer
78
- def self.lldb_process_detach: (FFI::Pointer) -> Integer
79
- def self.lldb_process_destroy_process: (FFI::Pointer) -> Integer
80
- def self.lldb_process_signal: (FFI::Pointer, Integer) -> Integer
218
+ def self.lldb_process_continue: (FFI::Pointer, FFI::Pointer) -> Integer
219
+ def self.lldb_process_stop: (FFI::Pointer, FFI::Pointer) -> Integer
220
+ def self.lldb_process_kill: (FFI::Pointer, FFI::Pointer) -> Integer
221
+ def self.lldb_process_detach: (FFI::Pointer, FFI::Pointer) -> Integer
222
+ def self.lldb_process_destroy_process: (FFI::Pointer, FFI::Pointer) -> Integer
223
+ def self.lldb_process_signal: (FFI::Pointer, Integer, FFI::Pointer) -> Integer
81
224
  def self.lldb_process_get_state: (FFI::Pointer) -> Integer
82
225
  def self.lldb_process_get_num_threads: (FFI::Pointer) -> Integer
83
226
  def self.lldb_process_get_thread_at_index: (FFI::Pointer, Integer) -> FFI::Pointer
@@ -92,13 +235,14 @@ module LLDB
92
235
  def self.lldb_process_read_memory: (FFI::Pointer, Integer, FFI::Pointer, Integer, FFI::Pointer) -> Integer
93
236
  def self.lldb_process_write_memory: (FFI::Pointer, Integer, FFI::Pointer, Integer, FFI::Pointer) -> Integer
94
237
  def self.lldb_process_allocate_memory: (FFI::Pointer, Integer, Integer, FFI::Pointer) -> Integer
95
- def self.lldb_process_deallocate_memory: (FFI::Pointer, Integer) -> Integer
238
+ def self.lldb_process_deallocate_memory: (FFI::Pointer, Integer, FFI::Pointer) -> Integer
96
239
  def self.lldb_process_read_cstring_from_memory: (FFI::Pointer, Integer, FFI::Pointer, Integer, FFI::Pointer) -> Integer
97
240
  def self.lldb_process_get_stdout: (FFI::Pointer, FFI::Pointer, Integer) -> Integer
98
241
  def self.lldb_process_get_stderr: (FFI::Pointer, FFI::Pointer, Integer) -> Integer
99
- def self.lldb_process_put_stdin: (FFI::Pointer, String, Integer) -> Integer
100
- def self.lldb_process_send_async_interrupt: (FFI::Pointer) -> Integer
101
- def self.lldb_process_get_num_supported_hardware_watchpoints: (FFI::Pointer, FFI::Pointer) -> Integer
242
+ def self.lldb_process_put_stdin: (FFI::Pointer, FFI::Pointer, Integer) -> Integer
243
+ def self.lldb_process_send_async_interrupt: (FFI::Pointer) -> void
244
+ def self.lldb_process_get_broadcaster: (FFI::Pointer) -> FFI::Pointer
245
+ def self.lldb_process_get_num_supported_hardware_watchpoints: (FFI::Pointer, FFI::Pointer, FFI::Pointer) -> Integer
102
246
  def self.lldb_process_get_unique_id: (FFI::Pointer) -> Integer
103
247
  def self.lldb_process_get_memory_region_info: (FFI::Pointer, Integer, FFI::Pointer) -> FFI::Pointer
104
248
 
@@ -115,11 +259,11 @@ module LLDB
115
259
  # SBThread
116
260
  def self.lldb_thread_destroy: (FFI::Pointer) -> void
117
261
  def self.lldb_thread_is_valid: (FFI::Pointer) -> Integer
118
- def self.lldb_thread_step_over: (FFI::Pointer) -> Integer
119
- def self.lldb_thread_step_into: (FFI::Pointer) -> Integer
120
- def self.lldb_thread_step_out: (FFI::Pointer) -> Integer
121
- def self.lldb_thread_step_instruction: (FFI::Pointer, Integer) -> Integer
122
- def self.lldb_thread_run_to_address: (FFI::Pointer, Integer) -> Integer
262
+ def self.lldb_thread_step_over: (FFI::Pointer, Integer, FFI::Pointer) -> Integer
263
+ def self.lldb_thread_step_into: (FFI::Pointer, String?, Integer, Integer, FFI::Pointer) -> Integer
264
+ def self.lldb_thread_step_out: (FFI::Pointer, FFI::Pointer) -> Integer
265
+ def self.lldb_thread_step_instruction: (FFI::Pointer, Integer, FFI::Pointer) -> Integer
266
+ def self.lldb_thread_run_to_address: (FFI::Pointer, Integer, FFI::Pointer) -> Integer
123
267
  def self.lldb_thread_get_num_frames: (FFI::Pointer) -> Integer
124
268
  def self.lldb_thread_get_frame_at_index: (FFI::Pointer, Integer) -> FFI::Pointer
125
269
  def self.lldb_thread_get_selected_frame: (FFI::Pointer) -> FFI::Pointer
@@ -129,7 +273,7 @@ module LLDB
129
273
  def self.lldb_thread_get_name: (FFI::Pointer) -> String?
130
274
  def self.lldb_thread_get_queue_name: (FFI::Pointer) -> String?
131
275
  def self.lldb_thread_get_stop_reason: (FFI::Pointer) -> Integer
132
- def self.lldb_thread_get_stop_description: (FFI::Pointer, Integer) -> String?
276
+ def self.lldb_thread_get_stop_description: (FFI::Pointer, FFI::Pointer?, Integer) -> Integer
133
277
  def self.lldb_thread_get_stop_reason_data_count: (FFI::Pointer) -> Integer
134
278
  def self.lldb_thread_get_stop_reason_data_at_index: (FFI::Pointer, Integer) -> Integer
135
279
  def self.lldb_thread_is_stopped: (FFI::Pointer) -> Integer
@@ -145,6 +289,8 @@ module LLDB
145
289
  def self.lldb_frame_get_display_function_name: (FFI::Pointer) -> String?
146
290
  def self.lldb_frame_get_line: (FFI::Pointer) -> Integer
147
291
  def self.lldb_frame_get_file_path: (FFI::Pointer) -> String?
292
+ def self.lldb_frame_get_file_spec: (FFI::Pointer) -> FFI::Pointer
293
+ def self.lldb_frame_get_line_entry: (FFI::Pointer) -> FFI::Pointer
148
294
  def self.lldb_frame_get_column: (FFI::Pointer) -> Integer
149
295
  def self.lldb_frame_get_pc: (FFI::Pointer) -> Integer
150
296
  def self.lldb_frame_set_pc: (FFI::Pointer, Integer) -> Integer
@@ -152,9 +298,15 @@ module LLDB
152
298
  def self.lldb_frame_get_fp: (FFI::Pointer) -> Integer
153
299
  def self.lldb_frame_find_variable: (FFI::Pointer, String) -> FFI::Pointer
154
300
  def self.lldb_frame_evaluate_expression: (FFI::Pointer, String) -> FFI::Pointer
301
+ def self.lldb_frame_evaluate_expression_with_options: (FFI::Pointer, String, FFI::Pointer) -> FFI::Pointer
155
302
  def self.lldb_frame_get_value_for_variable_path: (FFI::Pointer, String) -> FFI::Pointer
156
303
  def self.lldb_frame_get_frame_id: (FFI::Pointer) -> Integer
157
304
  def self.lldb_frame_get_thread: (FFI::Pointer) -> FFI::Pointer
305
+ def self.lldb_frame_get_function: (FFI::Pointer) -> FFI::Pointer
306
+ def self.lldb_frame_get_symbol: (FFI::Pointer) -> FFI::Pointer
307
+ def self.lldb_frame_get_compile_unit: (FFI::Pointer) -> FFI::Pointer
308
+ def self.lldb_frame_get_block: (FFI::Pointer) -> FFI::Pointer
309
+ def self.lldb_frame_get_instruction_list: (FFI::Pointer, FFI::Pointer) -> FFI::Pointer
158
310
  def self.lldb_frame_get_symbol_context: (FFI::Pointer, Integer) -> FFI::Pointer
159
311
  def self.lldb_frame_get_variables: (FFI::Pointer, Integer, Integer, Integer, Integer) -> FFI::Pointer
160
312
  def self.lldb_frame_get_registers: (FFI::Pointer) -> FFI::Pointer
@@ -193,6 +345,7 @@ module LLDB
193
345
  def self.lldb_breakpoint_location_is_valid: (FFI::Pointer) -> Integer
194
346
  def self.lldb_breakpoint_location_get_id: (FFI::Pointer) -> Integer
195
347
  def self.lldb_breakpoint_location_get_load_address: (FFI::Pointer) -> Integer
348
+ def self.lldb_breakpoint_location_get_address: (FFI::Pointer) -> FFI::Pointer
196
349
  def self.lldb_breakpoint_location_is_enabled: (FFI::Pointer) -> Integer
197
350
  def self.lldb_breakpoint_location_set_enabled: (FFI::Pointer, Integer) -> void
198
351
  def self.lldb_breakpoint_location_get_hit_count: (FFI::Pointer) -> Integer
@@ -213,8 +366,8 @@ module LLDB
213
366
  def self.lldb_value_get_num_children: (FFI::Pointer) -> Integer
214
367
  def self.lldb_value_get_child_at_index: (FFI::Pointer, Integer) -> FFI::Pointer
215
368
  def self.lldb_value_get_child_member_with_name: (FFI::Pointer, String) -> FFI::Pointer
216
- def self.lldb_value_get_value_as_signed: (FFI::Pointer) -> Integer
217
- def self.lldb_value_get_value_as_unsigned: (FFI::Pointer) -> Integer
369
+ def self.lldb_value_get_value_as_signed: (FFI::Pointer, FFI::Pointer, Integer) -> Integer
370
+ def self.lldb_value_get_value_as_unsigned: (FFI::Pointer, FFI::Pointer, Integer) -> Integer
218
371
  def self.lldb_value_get_byte_size: (FFI::Pointer) -> Integer
219
372
  def self.lldb_value_might_have_children: (FFI::Pointer) -> Integer
220
373
  def self.lldb_value_get_error: (FFI::Pointer, FFI::Pointer) -> Integer
@@ -246,6 +399,7 @@ module LLDB
246
399
  def self.lldb_error_fail: (FFI::Pointer) -> Integer
247
400
  def self.lldb_error_get_cstring: (FFI::Pointer) -> String?
248
401
  def self.lldb_error_get_error: (FFI::Pointer) -> Integer
402
+ def self.lldb_error_get_type: (FFI::Pointer) -> Integer
249
403
  def self.lldb_error_clear: (FFI::Pointer) -> void
250
404
  def self.lldb_error_set_error_string: (FFI::Pointer, String) -> void
251
405
 
@@ -254,7 +408,67 @@ module LLDB
254
408
  def self.lldb_module_is_valid: (FFI::Pointer) -> Integer
255
409
  def self.lldb_module_get_file_path: (FFI::Pointer) -> String?
256
410
  def self.lldb_module_get_platform_file_path: (FFI::Pointer) -> String?
411
+ def self.lldb_module_get_file: (FFI::Pointer) -> FFI::Pointer
412
+ def self.lldb_module_get_platform_file: (FFI::Pointer) -> FFI::Pointer
257
413
  def self.lldb_module_get_num_symbols: (FFI::Pointer) -> Integer
414
+ def self.lldb_module_get_symbol_at_index: (FFI::Pointer, Integer) -> FFI::Pointer
415
+
416
+ # SBSymbol, SBFunction, SBCompileUnit, and SBBlock
417
+ def self.lldb_symbol_destroy: (FFI::Pointer) -> void
418
+ def self.lldb_symbol_is_valid: (FFI::Pointer) -> Integer
419
+ def self.lldb_symbol_get_name: (FFI::Pointer) -> String?
420
+ def self.lldb_symbol_get_display_name: (FFI::Pointer) -> String?
421
+ def self.lldb_symbol_get_mangled_name: (FFI::Pointer) -> String?
422
+ def self.lldb_symbol_get_base_name: (FFI::Pointer) -> String?
423
+ def self.lldb_symbol_get_start_address: (FFI::Pointer) -> FFI::Pointer
424
+ def self.lldb_symbol_get_end_address: (FFI::Pointer) -> FFI::Pointer
425
+ def self.lldb_symbol_get_value: (FFI::Pointer) -> Integer
426
+ def self.lldb_symbol_get_size: (FFI::Pointer) -> Integer
427
+ def self.lldb_symbol_get_prologue_byte_size: (FFI::Pointer) -> Integer
428
+ def self.lldb_symbol_get_type: (FFI::Pointer) -> Integer
429
+ def self.lldb_symbol_get_id: (FFI::Pointer) -> Integer
430
+ def self.lldb_function_destroy: (FFI::Pointer) -> void
431
+ def self.lldb_function_is_valid: (FFI::Pointer) -> Integer
432
+ def self.lldb_function_get_name: (FFI::Pointer) -> String?
433
+ def self.lldb_function_get_display_name: (FFI::Pointer) -> String?
434
+ def self.lldb_function_get_mangled_name: (FFI::Pointer) -> String?
435
+ def self.lldb_function_get_base_name: (FFI::Pointer) -> String?
436
+ def self.lldb_function_get_start_address: (FFI::Pointer) -> FFI::Pointer
437
+ def self.lldb_function_get_end_address: (FFI::Pointer) -> FFI::Pointer
438
+ def self.lldb_function_get_prologue_byte_size: (FFI::Pointer) -> Integer
439
+ def self.lldb_function_get_type: (FFI::Pointer) -> FFI::Pointer
440
+ def self.lldb_function_get_block: (FFI::Pointer) -> FFI::Pointer
441
+ def self.lldb_function_is_optimized: (FFI::Pointer) -> Integer
442
+ def self.lldb_function_get_language: (FFI::Pointer) -> Integer
443
+ def self.lldb_compile_unit_destroy: (FFI::Pointer) -> void
444
+ def self.lldb_compile_unit_is_valid: (FFI::Pointer) -> Integer
445
+ def self.lldb_compile_unit_get_file_spec: (FFI::Pointer) -> FFI::Pointer
446
+ def self.lldb_compile_unit_get_num_line_entries: (FFI::Pointer) -> Integer
447
+ def self.lldb_compile_unit_get_line_entry_at_index: (FFI::Pointer, Integer) -> FFI::Pointer
448
+ def self.lldb_block_destroy: (FFI::Pointer) -> void
449
+ def self.lldb_block_is_valid: (FFI::Pointer) -> Integer
450
+ def self.lldb_block_get_inlined_name: (FFI::Pointer) -> String?
451
+ def self.lldb_block_get_inlined_call_site_file: (FFI::Pointer) -> FFI::Pointer
452
+ def self.lldb_block_get_inlined_call_site_line: (FFI::Pointer) -> Integer
453
+ def self.lldb_block_get_inlined_call_site_column: (FFI::Pointer) -> Integer
454
+ def self.lldb_block_get_parent: (FFI::Pointer) -> FFI::Pointer
455
+ def self.lldb_block_get_sibling: (FFI::Pointer) -> FFI::Pointer
456
+ def self.lldb_block_get_first_child: (FFI::Pointer) -> FFI::Pointer
457
+ def self.lldb_block_get_num_ranges: (FFI::Pointer) -> Integer
458
+ def self.lldb_block_get_range_start_address: (FFI::Pointer, Integer) -> FFI::Pointer
459
+ def self.lldb_block_get_range_end_address: (FFI::Pointer, Integer) -> FFI::Pointer
460
+ def self.lldb_instruction_list_destroy: (FFI::Pointer) -> void
461
+ def self.lldb_instruction_list_is_valid: (FFI::Pointer) -> Integer
462
+ def self.lldb_instruction_list_get_size: (FFI::Pointer) -> Integer
463
+ def self.lldb_instruction_list_get_instruction_at_index: (FFI::Pointer, Integer) -> FFI::Pointer
464
+ def self.lldb_instruction_destroy: (FFI::Pointer) -> void
465
+ def self.lldb_instruction_is_valid: (FFI::Pointer) -> Integer
466
+ def self.lldb_instruction_get_address: (FFI::Pointer) -> FFI::Pointer
467
+ def self.lldb_instruction_get_mnemonic: (FFI::Pointer, FFI::Pointer) -> String?
468
+ def self.lldb_instruction_get_operands: (FFI::Pointer, FFI::Pointer) -> String?
469
+ def self.lldb_instruction_get_comment: (FFI::Pointer, FFI::Pointer) -> String?
470
+ def self.lldb_instruction_get_byte_size: (FFI::Pointer) -> Integer
471
+ def self.lldb_instruction_get_bytes: (FFI::Pointer, FFI::Pointer, FFI::Pointer, Integer) -> Integer
258
472
 
259
473
  # SBSymbolContext
260
474
  def self.lldb_symbol_context_destroy: (FFI::Pointer) -> void
@@ -286,7 +500,17 @@ module LLDB
286
500
  def self.lldb_type_get_num_fields: (FFI::Pointer) -> Integer
287
501
  def self.lldb_type_get_num_direct_base_classes: (FFI::Pointer) -> Integer
288
502
  def self.lldb_type_get_num_virtual_base_classes: (FFI::Pointer) -> Integer
503
+ def self.lldb_type_get_field_at_index: (FFI::Pointer, Integer) -> FFI::Pointer
504
+ def self.lldb_type_get_direct_base_class_at_index: (FFI::Pointer, Integer) -> FFI::Pointer
505
+ def self.lldb_type_get_virtual_base_class_at_index: (FFI::Pointer, Integer) -> FFI::Pointer
289
506
  def self.lldb_type_get_basic_type: (FFI::Pointer) -> Integer
507
+ def self.lldb_type_member_destroy: (FFI::Pointer) -> void
508
+ def self.lldb_type_member_is_valid: (FFI::Pointer) -> Integer
509
+ def self.lldb_type_member_get_name: (FFI::Pointer) -> String?
510
+ def self.lldb_type_member_get_type: (FFI::Pointer) -> FFI::Pointer
511
+ def self.lldb_type_member_get_offset_in_bytes: (FFI::Pointer) -> Integer
512
+ def self.lldb_type_member_get_offset_in_bits: (FFI::Pointer) -> Integer
513
+ def self.lldb_type_member_get_bitfield_size_in_bits: (FFI::Pointer) -> Integer
290
514
 
291
515
  # SBWatchpoint
292
516
  def self.lldb_watchpoint_destroy: (FFI::Pointer) -> void
@@ -301,8 +525,8 @@ module LLDB
301
525
  def self.lldb_watchpoint_set_condition: (FFI::Pointer, String?) -> void
302
526
  def self.lldb_watchpoint_get_watch_address: (FFI::Pointer) -> Integer
303
527
  def self.lldb_watchpoint_get_watch_size: (FFI::Pointer) -> Integer
304
- def self.lldb_watchpoint_is_watching_reads: (FFI::Pointer) -> Integer
305
- def self.lldb_watchpoint_is_watching_writes: (FFI::Pointer) -> Integer
528
+ def self.lldb_watchpoint_is_watching_reads: (FFI::Pointer, FFI::Pointer) -> Integer
529
+ def self.lldb_watchpoint_is_watching_writes: (FFI::Pointer, FFI::Pointer) -> Integer
306
530
 
307
531
  # SBCommandInterpreter
308
532
  def self.lldb_command_interpreter_destroy: (FFI::Pointer) -> void
@@ -317,7 +541,9 @@ module LLDB
317
541
  def self.lldb_command_return_object_is_valid: (FFI::Pointer) -> Integer
318
542
  def self.lldb_command_return_object_get_output: (FFI::Pointer) -> String?
319
543
  def self.lldb_command_return_object_get_error: (FFI::Pointer) -> String?
544
+ def self.lldb_command_return_object_get_status: (FFI::Pointer) -> Integer
320
545
  def self.lldb_command_return_object_succeeded: (FFI::Pointer) -> Integer
546
+ def self.lldb_command_return_object_has_result: (FFI::Pointer) -> Integer
321
547
  def self.lldb_command_return_object_clear: (FFI::Pointer) -> void
322
548
  end
323
549
  end
@@ -0,0 +1,7 @@
1
+ class WeakRef
2
+ def initialize: (untyped) -> void
3
+ def __getobj__: () -> untyped
4
+
5
+ class RefError < RuntimeError
6
+ end
7
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lldb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yudai Takada
@@ -38,35 +38,56 @@ files:
38
38
  - README.md
39
39
  - Rakefile
40
40
  - Steepfile
41
+ - bindings/constants.yml
42
+ - bindings/surface.yml
41
43
  - examples/basic_debug.rb
42
44
  - examples/breakpoints.rb
43
45
  - examples/expression_eval.rb
44
46
  - examples/test_program.c
45
- - ext/lldb/Makefile
47
+ - ext/lldb/discovery.rb
46
48
  - ext/lldb/extconf.rb
47
- - ext/lldb/liblldb_wrapper.dylib
48
49
  - ext/lldb/lldb_wrapper.cpp
49
50
  - ext/lldb/lldb_wrapper.h
50
- - ext/lldb/lldb_wrapper.o
51
- - ext/lldb/mkmf.log
52
51
  - lib/lldb.rb
52
+ - lib/lldb/address.rb
53
53
  - lib/lldb/api_support.rb
54
+ - lib/lldb/attach_info.rb
55
+ - lib/lldb/block.rb
54
56
  - lib/lldb/breakpoint.rb
55
57
  - lib/lldb/breakpoint_location.rb
58
+ - lib/lldb/broadcaster.rb
56
59
  - lib/lldb/command_interpreter.rb
57
60
  - lib/lldb/command_return_object.rb
61
+ - lib/lldb/compile_unit.rb
62
+ - lib/lldb/context.rb
58
63
  - lib/lldb/debugger.rb
59
64
  - lib/lldb/error.rb
65
+ - lib/lldb/event.rb
66
+ - lib/lldb/expression_options.rb
60
67
  - lib/lldb/ffi_bindings.rb
68
+ - lib/lldb/file_spec.rb
69
+ - lib/lldb/file_spec_list.rb
61
70
  - lib/lldb/frame.rb
71
+ - lib/lldb/function.rb
72
+ - lib/lldb/instruction.rb
73
+ - lib/lldb/instruction_list.rb
62
74
  - lib/lldb/launch_info.rb
75
+ - lib/lldb/line_entry.rb
76
+ - lib/lldb/listener.rb
63
77
  - lib/lldb/memory_region_info.rb
64
78
  - lib/lldb/module.rb
79
+ - lib/lldb/native.rb
80
+ - lib/lldb/native_buffer.rb
81
+ - lib/lldb/native_handle.rb
82
+ - lib/lldb/native_lifecycle.rb
83
+ - lib/lldb/native_string_array.rb
65
84
  - lib/lldb/process.rb
85
+ - lib/lldb/symbol.rb
66
86
  - lib/lldb/symbol_context.rb
67
87
  - lib/lldb/target.rb
68
88
  - lib/lldb/thread.rb
69
89
  - lib/lldb/type.rb
90
+ - lib/lldb/type_member.rb
70
91
  - lib/lldb/types.rb
71
92
  - lib/lldb/value.rb
72
93
  - lib/lldb/value_list.rb
@@ -75,7 +96,10 @@ files:
75
96
  - lldb.gemspec
76
97
  - rbs_collection.lock.yaml
77
98
  - rbs_collection.yaml
99
+ - script/check_bindings
100
+ - script/guard_c_exports
78
101
  - sig/lldb/ffi_bindings.rbs
102
+ - sig/lldb/weak_ref.rbs
79
103
  homepage: https://github.com/ydah/lldb-ruby
80
104
  licenses:
81
105
  - MIT
@@ -98,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
122
  - !ruby/object:Gem::Version
99
123
  version: '0'
100
124
  requirements: []
101
- rubygems_version: 4.0.3
125
+ rubygems_version: 4.0.6
102
126
  specification_version: 4
103
127
  summary: Ruby bindings for LLDB debugger
104
128
  test_files: []