blob: 0990866fafed77ed4b3ced94b39e0ce2999302ab [file] [log] [blame]
Johnny Chenebd63b22011-07-16 21:15:39 +00001//===-- SWIG Interface for SBTarget -----------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10namespace lldb {
11
Greg Clayton0a8dcac2012-02-24 05:03:03 +000012class SBLaunchInfo
13{
Greg Clayton98ca1e62012-02-24 20:59:25 +000014public:
15 SBLaunchInfo (const char **argv);
Greg Clayton0a8dcac2012-02-24 05:03:03 +000016
17 uint32_t
18 GetUserID();
19
20 uint32_t
21 GetGroupID();
22
23 bool
24 UserIDIsValid ();
25
26 bool
27 GroupIDIsValid ();
28
29 void
30 SetUserID (uint32_t uid);
31
32 void
33 SetGroupID (uint32_t gid);
34
Greg Clayton0a8dcac2012-02-24 05:03:03 +000035 uint32_t
36 GetNumArguments ();
37
38 const char *
39 GetArgumentAtIndex (uint32_t idx);
40
41 void
42 SetArguments (const char **argv, bool append);
43
44 uint32_t
45 GetNumEnvironmentEntries ();
46
47 const char *
48 GetEnvironmentEntryAtIndex (uint32_t idx);
49
50 void
51 SetEnvironmentEntries (const char **envp, bool append);
52
53 void
54 Clear ();
55
56 const char *
57 GetWorkingDirectory () const;
58
59 void
60 SetWorkingDirectory (const char *working_dir);
61
62 uint32_t
63 GetLaunchFlags ();
64
65 void
66 SetLaunchFlags (uint32_t flags);
67
68 const char *
69 GetProcessPluginName ();
70
71 void
72 SetProcessPluginName (const char *plugin_name);
73
74 const char *
75 GetShell ();
76
77 void
78 SetShell (const char * path);
79
80 uint32_t
81 GetResumeCount ();
82
83 void
84 SetResumeCount (uint32_t c);
85
86 bool
87 AddCloseFileAction (int fd);
88
89 bool
90 AddDuplicateFileAction (int fd, int dup_fd);
91
92 bool
93 AddOpenFileAction (int fd, const char *path, bool read, bool write);
94
95 bool
96 AddSuppressFileAction (int fd, bool read, bool write);
97};
98
99class SBAttachInfo
100{
101public:
102 SBAttachInfo ();
103
104 SBAttachInfo (lldb::pid_t pid);
105
106 SBAttachInfo (const char *path, bool wait_for);
107
108 SBAttachInfo (const lldb::SBAttachInfo &rhs);
109
110 lldb::pid_t
111 GetProcessID ();
112
113 void
114 SetProcessID (lldb::pid_t pid);
115
116 void
117 SetExecutable (const char *path);
118
119 void
120 SetExecutable (lldb::SBFileSpec exe_file);
121
122 bool
123 GetWaitForLaunch ();
124
125 void
126 SetWaitForLaunch (bool b);
127
128 uint32_t
129 GetResumeCount ();
130
131 void
132 SetResumeCount (uint32_t c);
133
134 const char *
135 GetProcessPluginName ();
136
137 void
138 SetProcessPluginName (const char *plugin_name);
139
140 uint32_t
141 GetEffectiveUserID();
142
143 uint32_t
144 GetEffectiveGroupID();
145
146 bool
147 EffectiveUserIDIsValid ();
148
149 bool
150 EffectiveGroupIDIsValid ();
151
152 void
153 SetEffectiveUserID (uint32_t uid);
154
155 void
156 SetEffectiveGroupID (uint32_t gid);
157
158 lldb::pid_t
159 GetParentProcessID ();
160
161 void
162 SetParentProcessID (lldb::pid_t pid);
163
164 bool
165 ParentProcessIDIsValid();
166};
167
168
Johnny Chenebd63b22011-07-16 21:15:39 +0000169%feature("docstring",
170"Represents the target program running under the debugger.
171
Johnny Chenecd4feb2011-10-14 00:42:25 +0000172SBTarget supports module, breakpoint, and watchpoint iterations. For example,
Johnny Chenebd63b22011-07-16 21:15:39 +0000173
174 for m in target.module_iter():
175 print m
176
177produces:
178
179(x86_64) /Volumes/data/lldb/svn/trunk/test/python_api/lldbutil/iter/a.out
180(x86_64) /usr/lib/dyld
181(x86_64) /usr/lib/libstdc++.6.dylib
182(x86_64) /usr/lib/libSystem.B.dylib
183(x86_64) /usr/lib/system/libmathCommon.A.dylib
184(x86_64) /usr/lib/libSystem.B.dylib(__commpage)
185
186and,
187
188 for b in target.breakpoint_iter():
189 print b
190
191produces:
192
193SBBreakpoint: id = 1, file ='main.cpp', line = 66, locations = 1
Johnny Chen092bd152011-09-27 01:19:20 +0000194SBBreakpoint: id = 2, file ='main.cpp', line = 85, locations = 1
195
196and,
197
Johnny Chenecd4feb2011-10-14 00:42:25 +0000198 for wp_loc in target.watchpoint_iter():
Johnny Chen092bd152011-09-27 01:19:20 +0000199 print wp_loc
200
201produces:
202
Johnny Chenecd4feb2011-10-14 00:42:25 +0000203Watchpoint 1: addr = 0x1034ca048 size = 4 state = enabled type = rw
Johnny Chen092bd152011-09-27 01:19:20 +0000204 declare @ '/Volumes/data/lldb/svn/trunk/test/python_api/watchpoint/main.c:12'
Johnny Chenecd4feb2011-10-14 00:42:25 +0000205 hw_index = 0 hit_count = 2 ignore_count = 0"
Johnny Chenc3fba812011-07-18 20:13:38 +0000206) SBTarget;
Johnny Chenebd63b22011-07-16 21:15:39 +0000207class SBTarget
208{
Johnny Chenebd63b22011-07-16 21:15:39 +0000209public:
210 //------------------------------------------------------------------
211 // Broadcaster bits.
212 //------------------------------------------------------------------
213 enum
214 {
215 eBroadcastBitBreakpointChanged = (1 << 0),
216 eBroadcastBitModulesLoaded = (1 << 1),
217 eBroadcastBitModulesUnloaded = (1 << 2)
218 };
219
220 //------------------------------------------------------------------
221 // Constructors
222 //------------------------------------------------------------------
223 SBTarget ();
224
225 SBTarget (const lldb::SBTarget& rhs);
226
Johnny Chenebd63b22011-07-16 21:15:39 +0000227 //------------------------------------------------------------------
228 // Destructor
229 //------------------------------------------------------------------
230 ~SBTarget();
231
Jim Ingham5a15e692012-02-16 06:50:00 +0000232 static const char *
233 GetBroadcasterClassName ();
234
Johnny Chenebd63b22011-07-16 21:15:39 +0000235 bool
236 IsValid() const;
237
238 lldb::SBProcess
239 GetProcess ();
240
241 %feature("docstring", "
242 //------------------------------------------------------------------
243 /// Launch a new process.
244 ///
245 /// Launch a new process by spawning a new process using the
246 /// target object's executable module's file as the file to launch.
247 /// Arguments are given in \a argv, and the environment variables
248 /// are in \a envp. Standard input and output files can be
249 /// optionally re-directed to \a stdin_path, \a stdout_path, and
250 /// \a stderr_path.
251 ///
252 /// @param[in] listener
253 /// An optional listener that will receive all process events.
254 /// If \a listener is valid then \a listener will listen to all
255 /// process events. If not valid, then this target's debugger
256 /// (SBTarget::GetDebugger()) will listen to all process events.
257 ///
258 /// @param[in] argv
259 /// The argument array.
260 ///
261 /// @param[in] envp
262 /// The environment array.
263 ///
264 /// @param[in] launch_flags
265 /// Flags to modify the launch (@see lldb::LaunchFlags)
266 ///
267 /// @param[in] stdin_path
268 /// The path to use when re-directing the STDIN of the new
269 /// process. If all stdXX_path arguments are NULL, a pseudo
270 /// terminal will be used.
271 ///
272 /// @param[in] stdout_path
273 /// The path to use when re-directing the STDOUT of the new
274 /// process. If all stdXX_path arguments are NULL, a pseudo
275 /// terminal will be used.
276 ///
277 /// @param[in] stderr_path
278 /// The path to use when re-directing the STDERR of the new
279 /// process. If all stdXX_path arguments are NULL, a pseudo
280 /// terminal will be used.
281 ///
282 /// @param[in] working_directory
283 /// The working directory to have the child process run in
284 ///
285 /// @param[in] launch_flags
286 /// Some launch options specified by logical OR'ing
287 /// lldb::LaunchFlags enumeration values together.
288 ///
289 /// @param[in] stop_at_endtry
290 /// If false do not stop the inferior at the entry point.
291 ///
292 /// @param[out]
293 /// An error object. Contains the reason if there is some failure.
294 ///
295 /// @return
296 /// A process object for the newly created process.
297 //------------------------------------------------------------------
298
299 For example,
300
301 process = target.Launch(self.dbg.GetListener(), None, None,
302 None, '/tmp/stdout.txt', None,
303 None, 0, False, error)
304
305 launches a new process by passing nothing for both the args and the envs
306 and redirect the standard output of the inferior to the /tmp/stdout.txt
307 file. It does not specify a working directory so that the debug server
308 will use its idea of what the current working directory is for the
309 inferior. Also, we ask the debugger not to stop the inferior at the
310 entry point. If no breakpoint is specified for the inferior, it should
311 run to completion if no user interaction is required.
312 ") Launch;
313 lldb::SBProcess
314 Launch (SBListener &listener,
315 char const **argv,
316 char const **envp,
317 const char *stdin_path,
318 const char *stdout_path,
319 const char *stderr_path,
320 const char *working_directory,
321 uint32_t launch_flags, // See LaunchFlags
322 bool stop_at_entry,
323 lldb::SBError& error);
324
325 %feature("docstring", "
326 //------------------------------------------------------------------
327 /// Launch a new process with sensible defaults.
328 ///
329 /// @param[in] argv
330 /// The argument array.
331 ///
332 /// @param[in] envp
333 /// The environment array.
334 ///
335 /// @param[in] working_directory
336 /// The working directory to have the child process run in
337 ///
338 /// Default: listener
339 /// Set to the target's debugger (SBTarget::GetDebugger())
340 ///
341 /// Default: launch_flags
342 /// Empty launch flags
343 ///
344 /// Default: stdin_path
345 /// Default: stdout_path
346 /// Default: stderr_path
347 /// A pseudo terminal will be used.
348 ///
349 /// @return
350 /// A process object for the newly created process.
351 //------------------------------------------------------------------
352
353 For example,
354
355 process = target.LaunchSimple(['X', 'Y', 'Z'], None, os.getcwd())
356
357 launches a new process by passing 'X', 'Y', 'Z' as the args to the
358 executable.
359 ") LaunchSimple;
360 lldb::SBProcess
361 LaunchSimple (const char **argv,
362 const char **envp,
363 const char *working_directory);
364
Greg Clayton0a8dcac2012-02-24 05:03:03 +0000365 lldb::SBProcess
366 Launch (lldb::SBLaunchInfo &launch_info, lldb::SBError& error);
367
368 lldb::SBProcess
369 Attach (lldb::SBAttachInfo &attach_info, lldb::SBError& error);
370
371
Johnny Chenebd63b22011-07-16 21:15:39 +0000372 %feature("docstring", "
373 //------------------------------------------------------------------
374 /// Attach to process with pid.
375 ///
376 /// @param[in] listener
377 /// An optional listener that will receive all process events.
378 /// If \a listener is valid then \a listener will listen to all
379 /// process events. If not valid, then this target's debugger
380 /// (SBTarget::GetDebugger()) will listen to all process events.
381 ///
382 /// @param[in] pid
383 /// The process ID to attach to.
384 ///
385 /// @param[out]
386 /// An error explaining what went wrong if attach fails.
387 ///
388 /// @return
389 /// A process object for the attached process.
390 //------------------------------------------------------------------
391 ") AttachToProcessWithID;
392 lldb::SBProcess
393 AttachToProcessWithID (SBListener &listener,
394 lldb::pid_t pid,
395 lldb::SBError& error);
396
397 %feature("docstring", "
398 //------------------------------------------------------------------
399 /// Attach to process with name.
400 ///
401 /// @param[in] listener
402 /// An optional listener that will receive all process events.
403 /// If \a listener is valid then \a listener will listen to all
404 /// process events. If not valid, then this target's debugger
405 /// (SBTarget::GetDebugger()) will listen to all process events.
406 ///
407 /// @param[in] name
408 /// Basename of process to attach to.
409 ///
410 /// @param[in] wait_for
411 /// If true wait for a new instance of 'name' to be launched.
412 ///
413 /// @param[out]
414 /// An error explaining what went wrong if attach fails.
415 ///
416 /// @return
417 /// A process object for the attached process.
418 //------------------------------------------------------------------
419 ") AttachToProcessWithName;
420 lldb::SBProcess
421 AttachToProcessWithName (SBListener &listener,
422 const char *name,
423 bool wait_for,
424 lldb::SBError& error);
425
426 %feature("docstring", "
427 //------------------------------------------------------------------
428 /// Connect to a remote debug server with url.
429 ///
430 /// @param[in] listener
431 /// An optional listener that will receive all process events.
432 /// If \a listener is valid then \a listener will listen to all
433 /// process events. If not valid, then this target's debugger
434 /// (SBTarget::GetDebugger()) will listen to all process events.
435 ///
436 /// @param[in] url
437 /// The url to connect to, e.g., 'connect://localhost:12345'.
438 ///
439 /// @param[in] plugin_name
440 /// The plugin name to be used; can be NULL.
441 ///
442 /// @param[out]
443 /// An error explaining what went wrong if the connect fails.
444 ///
445 /// @return
446 /// A process object for the connected process.
447 //------------------------------------------------------------------
448 ") ConnectRemote;
449 lldb::SBProcess
450 ConnectRemote (SBListener &listener,
451 const char *url,
452 const char *plugin_name,
453 SBError& error);
454
455 lldb::SBFileSpec
456 GetExecutable ();
457
Greg Clayton3e8c25f2011-09-24 00:52:29 +0000458 bool
459 AddModule (lldb::SBModule &module);
460
461 lldb::SBModule
462 AddModule (const char *path,
463 const char *triple,
464 const char *uuid);
465
Johnny Chenebd63b22011-07-16 21:15:39 +0000466 uint32_t
467 GetNumModules () const;
468
469 lldb::SBModule
470 GetModuleAtIndex (uint32_t idx);
471
Greg Clayton3e8c25f2011-09-24 00:52:29 +0000472 bool
473 RemoveModule (lldb::SBModule module);
474
Johnny Chenebd63b22011-07-16 21:15:39 +0000475 lldb::SBDebugger
476 GetDebugger() const;
477
478 lldb::SBModule
479 FindModule (const lldb::SBFileSpec &file_spec);
480
Greg Clayton1b925202012-01-29 06:07:39 +0000481 lldb::ByteOrder
482 GetByteOrder ();
483
484 uint32_t
485 GetAddressByteSize();
486
487 const char *
488 GetTriple ();
489
Greg Clayton3e8c25f2011-09-24 00:52:29 +0000490 lldb::SBError
491 SetSectionLoadAddress (lldb::SBSection section,
492 lldb::addr_t section_base_addr);
493
494 lldb::SBError
495 ClearSectionLoadAddress (lldb::SBSection section);
496
497 lldb::SBError
498 SetModuleLoadAddress (lldb::SBModule module,
499 int64_t sections_offset);
500
501 lldb::SBError
502 ClearModuleLoadAddress (lldb::SBModule module);
503
Johnny Chenebd63b22011-07-16 21:15:39 +0000504 %feature("docstring", "
505 //------------------------------------------------------------------
506 /// Find functions by name.
507 ///
508 /// @param[in] name
509 /// The name of the function we are looking for.
510 ///
511 /// @param[in] name_type_mask
512 /// A logical OR of one or more FunctionNameType enum bits that
513 /// indicate what kind of names should be used when doing the
514 /// lookup. Bits include fully qualified names, base names,
515 /// C++ methods, or ObjC selectors.
516 /// See FunctionNameType for more details.
517 ///
Johnny Chenebd63b22011-07-16 21:15:39 +0000518 /// @return
Greg Clayton7dd5c512012-02-06 01:44:54 +0000519 /// A lldb::SBSymbolContextList that gets filled in with all of
520 /// the symbol contexts for all the matches.
Johnny Chenebd63b22011-07-16 21:15:39 +0000521 //------------------------------------------------------------------
522 ") FindFunctions;
Greg Clayton7dd5c512012-02-06 01:44:54 +0000523 lldb::SBSymbolContextList
Johnny Chenebd63b22011-07-16 21:15:39 +0000524 FindFunctions (const char *name,
Greg Clayton7dd5c512012-02-06 01:44:54 +0000525 uint32_t name_type_mask = lldb::eFunctionNameTypeAny);
Enrico Granata979e20d2011-07-29 19:53:35 +0000526
527 lldb::SBType
528 FindFirstType (const char* type);
529
530 lldb::SBTypeList
531 FindTypes (const char* type);
Johnny Chenebd63b22011-07-16 21:15:39 +0000532
Jim Inghamcc637462011-09-13 00:29:56 +0000533 lldb::SBSourceManager
534 GetSourceManager ();
535
Johnny Chenebd63b22011-07-16 21:15:39 +0000536 %feature("docstring", "
537 //------------------------------------------------------------------
538 /// Find global and static variables by name.
539 ///
540 /// @param[in] name
541 /// The name of the global or static variable we are looking
542 /// for.
543 ///
544 /// @param[in] max_matches
545 /// Allow the number of matches to be limited to \a max_matches.
546 ///
547 /// @return
548 /// A list of matched variables in an SBValueList.
549 //------------------------------------------------------------------
550 ") FindGlobalVariables;
551 lldb::SBValueList
552 FindGlobalVariables (const char *name,
553 uint32_t max_matches);
554
555 void
556 Clear ();
557
Greg Claytona3955062011-07-22 16:46:35 +0000558 lldb::SBAddress
559 ResolveLoadAddress (lldb::addr_t vm_addr);
Johnny Chenebd63b22011-07-16 21:15:39 +0000560
561 SBSymbolContext
562 ResolveSymbolContextForAddress (const SBAddress& addr,
563 uint32_t resolve_scope);
564
565 lldb::SBBreakpoint
566 BreakpointCreateByLocation (const char *file, uint32_t line);
567
568 lldb::SBBreakpoint
569 BreakpointCreateByLocation (const lldb::SBFileSpec &file_spec, uint32_t line);
570
571 lldb::SBBreakpoint
572 BreakpointCreateByName (const char *symbol_name, const char *module_name = NULL);
573
574 lldb::SBBreakpoint
Jim Ingham1fb8a2d2011-10-11 01:18:55 +0000575 BreakpointCreateByName (const char *symbol_name,
576 uint32_t func_name_type, // Logical OR one or more FunctionNameType enum bits
577 const SBFileSpecList &module_list,
578 const SBFileSpecList &comp_unit_list);
579
580 lldb::SBBreakpoint
Johnny Chenebd63b22011-07-16 21:15:39 +0000581 BreakpointCreateByRegex (const char *symbol_name_regex, const char *module_name = NULL);
582
583 lldb::SBBreakpoint
Jim Ingham03c8ee52011-09-21 01:17:13 +0000584 BreakpointCreateBySourceRegex (const char *source_regex, const lldb::SBFileSpec &source_file, const char *module_name = NULL);
585
586 lldb::SBBreakpoint
Johnny Chenebd63b22011-07-16 21:15:39 +0000587 BreakpointCreateByAddress (addr_t address);
588
589 uint32_t
590 GetNumBreakpoints () const;
591
592 lldb::SBBreakpoint
593 GetBreakpointAtIndex (uint32_t idx) const;
594
595 bool
596 BreakpointDelete (break_id_t break_id);
597
598 lldb::SBBreakpoint
599 FindBreakpointByID (break_id_t break_id);
600
601 bool
602 EnableAllBreakpoints ();
603
604 bool
605 DisableAllBreakpoints ();
606
607 bool
608 DeleteAllBreakpoints ();
609
Johnny Chen092bd152011-09-27 01:19:20 +0000610 uint32_t
Greg Clayton1fa6b3d2011-10-13 18:08:26 +0000611 GetNumWatchpoints () const;
612
613 lldb::SBWatchpoint
614 GetWatchpointAtIndex (uint32_t idx) const;
615
Johnny Chen092bd152011-09-27 01:19:20 +0000616 bool
Greg Clayton1fa6b3d2011-10-13 18:08:26 +0000617 DeleteWatchpoint (lldb::watch_id_t watch_id);
618
619 lldb::SBWatchpoint
620 FindWatchpointByID (lldb::watch_id_t watch_id);
621
Johnny Chen092bd152011-09-27 01:19:20 +0000622 bool
Greg Clayton1fa6b3d2011-10-13 18:08:26 +0000623 EnableAllWatchpoints ();
624
Johnny Chen092bd152011-09-27 01:19:20 +0000625 bool
Greg Clayton1fa6b3d2011-10-13 18:08:26 +0000626 DisableAllWatchpoints ();
627
Johnny Chen092bd152011-09-27 01:19:20 +0000628 bool
Greg Clayton1fa6b3d2011-10-13 18:08:26 +0000629 DeleteAllWatchpoints ();
630
631 lldb::SBWatchpoint
632 WatchAddress (lldb::addr_t addr,
633 size_t size,
634 bool read,
635 bool write);
636
Johnny Chen092bd152011-09-27 01:19:20 +0000637
Johnny Chenebd63b22011-07-16 21:15:39 +0000638 lldb::SBBroadcaster
639 GetBroadcaster () const;
Sean Callananef1f6902011-12-14 23:49:37 +0000640
641 lldb::SBInstructionList
642 GetInstructions (lldb::SBAddress base_addr, const void *buf, size_t size);
643
Johnny Chenebd63b22011-07-16 21:15:39 +0000644 bool
Greg Clayton96154be2011-11-13 06:57:31 +0000645 GetDescription (lldb::SBStream &description, lldb::DescriptionLevel description_level);
Greg Clayton1b925202012-01-29 06:07:39 +0000646
647 %pythoncode %{
Greg Claytonb302dff2012-02-01 08:09:32 +0000648 class modules_access(object):
649 '''A helper object that will lazily hand out lldb.SBModule objects for a target when supplied an index, or by full or partial path.'''
650 def __init__(self, sbtarget):
651 self.sbtarget = sbtarget
652
653 def __len__(self):
654 if self.sbtarget:
655 return self.sbtarget.GetNumModules()
656 return 0
657
658 def __getitem__(self, key):
659 num_modules = self.sbtarget.GetNumModules()
660 if type(key) is int:
661 if key < num_modules:
662 return self.sbtarget.GetModuleAtIndex(key)
663 elif type(key) is str:
664 if key.find('/') == -1:
665 for idx in range(num_modules):
666 module = self.sbtarget.GetModuleAtIndex(idx)
667 if module.file.basename == key:
668 return module
669 else:
670 for idx in range(num_modules):
671 module = self.sbtarget.GetModuleAtIndex(idx)
672 if module.file.fullpath == key:
673 return module
674 # See if the string is a UUID
675 the_uuid = uuid.UUID(key)
676 if the_uuid:
677 for idx in range(num_modules):
678 module = self.sbtarget.GetModuleAtIndex(idx)
679 if module.uuid == the_uuid:
680 return module
681 elif type(key) is uuid.UUID:
682 for idx in range(num_modules):
683 module = self.sbtarget.GetModuleAtIndex(idx)
684 if module.uuid == key:
685 return module
686 elif type(key) is re.SRE_Pattern:
687 matching_modules = []
688 for idx in range(num_modules):
689 module = self.sbtarget.GetModuleAtIndex(idx)
690 re_match = key.search(module.path.fullpath)
691 if re_match:
692 matching_modules.append(module)
693 return matching_modules
694 else:
695 print "error: unsupported item type: %s" % type(key)
696 return None
697
698 def get_modules_access_object(self):
Greg Claytonb6a5ba62012-02-03 03:22:53 +0000699 '''An accessor function that returns a modules_access() object which allows lazy module access from a lldb.SBTarget object.'''
Greg Claytonb302dff2012-02-01 08:09:32 +0000700 return self.modules_access (self)
701
702 def get_modules_array(self):
Greg Claytonb6a5ba62012-02-03 03:22:53 +0000703 '''An accessor function that returns a list() that contains all modules in a lldb.SBTarget object.'''
Greg Claytonb302dff2012-02-01 08:09:32 +0000704 modules = []
705 for idx in range(self.GetNumModules()):
706 modules.append(self.GetModuleAtIndex(idx))
707 return modules
708
709 __swig_getmethods__["modules"] = get_modules_array
710 if _newclass: x = property(get_modules_array, None)
711
712 __swig_getmethods__["module"] = get_modules_access_object
713 if _newclass: x = property(get_modules_access_object, None)
714
Greg Clayton1b925202012-01-29 06:07:39 +0000715 __swig_getmethods__["process"] = GetProcess
716 if _newclass: x = property(GetProcess, None)
717
718 __swig_getmethods__["executable"] = GetExecutable
719 if _newclass: x = property(GetExecutable, None)
720
721 __swig_getmethods__["debugger"] = GetDebugger
722 if _newclass: x = property(GetDebugger, None)
723
Greg Clayton1b925202012-01-29 06:07:39 +0000724 __swig_getmethods__["num_breakpoints"] = GetNumBreakpoints
725 if _newclass: x = property(GetNumBreakpoints, None)
726
727 __swig_getmethods__["num_watchpoints"] = GetNumWatchpoints
728 if _newclass: x = property(GetNumWatchpoints, None)
729
730 __swig_getmethods__["broadcaster"] = GetBroadcaster
731 if _newclass: x = property(GetBroadcaster, None)
732
733 __swig_getmethods__["byte_order"] = GetByteOrder
734 if _newclass: x = property(GetByteOrder, None)
735
736 __swig_getmethods__["addr_size"] = GetAddressByteSize
737 if _newclass: x = property(GetAddressByteSize, None)
738
739 __swig_getmethods__["triple"] = GetTriple
740 if _newclass: x = property(GetTriple, None)
741 %}
742
Johnny Chenebd63b22011-07-16 21:15:39 +0000743};
744
745} // namespace lldb