blob: a66131bf77f4e23341a3ecb22b4668571f2089f1 [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
Greg Clayton80efa5e2012-02-24 23:56:06 +0000141 GetUserID();
142
143 uint32_t
144 GetGroupID();
145
146 bool
147 UserIDIsValid ();
148
149 bool
150 GroupIDIsValid ();
151
152 void
153 SetUserID (uint32_t uid);
154
155 void
156 SetGroupID (uint32_t gid);
157
158 uint32_t
Greg Clayton0a8dcac2012-02-24 05:03:03 +0000159 GetEffectiveUserID();
160
161 uint32_t
162 GetEffectiveGroupID();
163
164 bool
165 EffectiveUserIDIsValid ();
166
167 bool
168 EffectiveGroupIDIsValid ();
169
170 void
171 SetEffectiveUserID (uint32_t uid);
172
173 void
174 SetEffectiveGroupID (uint32_t gid);
175
176 lldb::pid_t
177 GetParentProcessID ();
178
179 void
180 SetParentProcessID (lldb::pid_t pid);
181
182 bool
183 ParentProcessIDIsValid();
184};
185
186
Johnny Chenebd63b22011-07-16 21:15:39 +0000187%feature("docstring",
188"Represents the target program running under the debugger.
189
Johnny Chenecd4feb2011-10-14 00:42:25 +0000190SBTarget supports module, breakpoint, and watchpoint iterations. For example,
Johnny Chenebd63b22011-07-16 21:15:39 +0000191
192 for m in target.module_iter():
193 print m
194
195produces:
196
197(x86_64) /Volumes/data/lldb/svn/trunk/test/python_api/lldbutil/iter/a.out
198(x86_64) /usr/lib/dyld
199(x86_64) /usr/lib/libstdc++.6.dylib
200(x86_64) /usr/lib/libSystem.B.dylib
201(x86_64) /usr/lib/system/libmathCommon.A.dylib
202(x86_64) /usr/lib/libSystem.B.dylib(__commpage)
203
204and,
205
206 for b in target.breakpoint_iter():
207 print b
208
209produces:
210
211SBBreakpoint: id = 1, file ='main.cpp', line = 66, locations = 1
Johnny Chen092bd152011-09-27 01:19:20 +0000212SBBreakpoint: id = 2, file ='main.cpp', line = 85, locations = 1
213
214and,
215
Johnny Chenecd4feb2011-10-14 00:42:25 +0000216 for wp_loc in target.watchpoint_iter():
Johnny Chen092bd152011-09-27 01:19:20 +0000217 print wp_loc
218
219produces:
220
Johnny Chenecd4feb2011-10-14 00:42:25 +0000221Watchpoint 1: addr = 0x1034ca048 size = 4 state = enabled type = rw
Johnny Chen092bd152011-09-27 01:19:20 +0000222 declare @ '/Volumes/data/lldb/svn/trunk/test/python_api/watchpoint/main.c:12'
Johnny Chenecd4feb2011-10-14 00:42:25 +0000223 hw_index = 0 hit_count = 2 ignore_count = 0"
Johnny Chenc3fba812011-07-18 20:13:38 +0000224) SBTarget;
Johnny Chenebd63b22011-07-16 21:15:39 +0000225class SBTarget
226{
Johnny Chenebd63b22011-07-16 21:15:39 +0000227public:
228 //------------------------------------------------------------------
229 // Broadcaster bits.
230 //------------------------------------------------------------------
231 enum
232 {
233 eBroadcastBitBreakpointChanged = (1 << 0),
234 eBroadcastBitModulesLoaded = (1 << 1),
235 eBroadcastBitModulesUnloaded = (1 << 2)
236 };
237
238 //------------------------------------------------------------------
239 // Constructors
240 //------------------------------------------------------------------
241 SBTarget ();
242
243 SBTarget (const lldb::SBTarget& rhs);
244
Johnny Chenebd63b22011-07-16 21:15:39 +0000245 //------------------------------------------------------------------
246 // Destructor
247 //------------------------------------------------------------------
248 ~SBTarget();
249
Jim Ingham5a15e692012-02-16 06:50:00 +0000250 static const char *
251 GetBroadcasterClassName ();
252
Johnny Chenebd63b22011-07-16 21:15:39 +0000253 bool
254 IsValid() const;
255
256 lldb::SBProcess
257 GetProcess ();
258
259 %feature("docstring", "
260 //------------------------------------------------------------------
261 /// Launch a new process.
262 ///
263 /// Launch a new process by spawning a new process using the
264 /// target object's executable module's file as the file to launch.
265 /// Arguments are given in \a argv, and the environment variables
266 /// are in \a envp. Standard input and output files can be
267 /// optionally re-directed to \a stdin_path, \a stdout_path, and
268 /// \a stderr_path.
269 ///
270 /// @param[in] listener
271 /// An optional listener that will receive all process events.
272 /// If \a listener is valid then \a listener will listen to all
273 /// process events. If not valid, then this target's debugger
274 /// (SBTarget::GetDebugger()) will listen to all process events.
275 ///
276 /// @param[in] argv
277 /// The argument array.
278 ///
279 /// @param[in] envp
280 /// The environment array.
281 ///
282 /// @param[in] launch_flags
283 /// Flags to modify the launch (@see lldb::LaunchFlags)
284 ///
285 /// @param[in] stdin_path
286 /// The path to use when re-directing the STDIN of the new
287 /// process. If all stdXX_path arguments are NULL, a pseudo
288 /// terminal will be used.
289 ///
290 /// @param[in] stdout_path
291 /// The path to use when re-directing the STDOUT of the new
292 /// process. If all stdXX_path arguments are NULL, a pseudo
293 /// terminal will be used.
294 ///
295 /// @param[in] stderr_path
296 /// The path to use when re-directing the STDERR of the new
297 /// process. If all stdXX_path arguments are NULL, a pseudo
298 /// terminal will be used.
299 ///
300 /// @param[in] working_directory
301 /// The working directory to have the child process run in
302 ///
303 /// @param[in] launch_flags
304 /// Some launch options specified by logical OR'ing
305 /// lldb::LaunchFlags enumeration values together.
306 ///
307 /// @param[in] stop_at_endtry
308 /// If false do not stop the inferior at the entry point.
309 ///
310 /// @param[out]
311 /// An error object. Contains the reason if there is some failure.
312 ///
313 /// @return
314 /// A process object for the newly created process.
315 //------------------------------------------------------------------
316
317 For example,
318
319 process = target.Launch(self.dbg.GetListener(), None, None,
320 None, '/tmp/stdout.txt', None,
321 None, 0, False, error)
322
323 launches a new process by passing nothing for both the args and the envs
324 and redirect the standard output of the inferior to the /tmp/stdout.txt
325 file. It does not specify a working directory so that the debug server
326 will use its idea of what the current working directory is for the
327 inferior. Also, we ask the debugger not to stop the inferior at the
328 entry point. If no breakpoint is specified for the inferior, it should
329 run to completion if no user interaction is required.
330 ") Launch;
331 lldb::SBProcess
332 Launch (SBListener &listener,
333 char const **argv,
334 char const **envp,
335 const char *stdin_path,
336 const char *stdout_path,
337 const char *stderr_path,
338 const char *working_directory,
339 uint32_t launch_flags, // See LaunchFlags
340 bool stop_at_entry,
341 lldb::SBError& error);
342
343 %feature("docstring", "
344 //------------------------------------------------------------------
345 /// Launch a new process with sensible defaults.
346 ///
347 /// @param[in] argv
348 /// The argument array.
349 ///
350 /// @param[in] envp
351 /// The environment array.
352 ///
353 /// @param[in] working_directory
354 /// The working directory to have the child process run in
355 ///
356 /// Default: listener
357 /// Set to the target's debugger (SBTarget::GetDebugger())
358 ///
359 /// Default: launch_flags
360 /// Empty launch flags
361 ///
362 /// Default: stdin_path
363 /// Default: stdout_path
364 /// Default: stderr_path
365 /// A pseudo terminal will be used.
366 ///
367 /// @return
368 /// A process object for the newly created process.
369 //------------------------------------------------------------------
370
371 For example,
372
373 process = target.LaunchSimple(['X', 'Y', 'Z'], None, os.getcwd())
374
375 launches a new process by passing 'X', 'Y', 'Z' as the args to the
376 executable.
377 ") LaunchSimple;
378 lldb::SBProcess
379 LaunchSimple (const char **argv,
380 const char **envp,
381 const char *working_directory);
382
Greg Clayton0a8dcac2012-02-24 05:03:03 +0000383 lldb::SBProcess
384 Launch (lldb::SBLaunchInfo &launch_info, lldb::SBError& error);
385
386 lldb::SBProcess
387 Attach (lldb::SBAttachInfo &attach_info, lldb::SBError& error);
388
389
Johnny Chenebd63b22011-07-16 21:15:39 +0000390 %feature("docstring", "
391 //------------------------------------------------------------------
392 /// Attach to process with pid.
393 ///
394 /// @param[in] listener
395 /// An optional listener that will receive all process events.
396 /// If \a listener is valid then \a listener will listen to all
397 /// process events. If not valid, then this target's debugger
398 /// (SBTarget::GetDebugger()) will listen to all process events.
399 ///
400 /// @param[in] pid
401 /// The process ID to attach to.
402 ///
403 /// @param[out]
404 /// An error explaining what went wrong if attach fails.
405 ///
406 /// @return
407 /// A process object for the attached process.
408 //------------------------------------------------------------------
409 ") AttachToProcessWithID;
410 lldb::SBProcess
411 AttachToProcessWithID (SBListener &listener,
412 lldb::pid_t pid,
413 lldb::SBError& error);
414
415 %feature("docstring", "
416 //------------------------------------------------------------------
417 /// Attach to process with name.
418 ///
419 /// @param[in] listener
420 /// An optional listener that will receive all process events.
421 /// If \a listener is valid then \a listener will listen to all
422 /// process events. If not valid, then this target's debugger
423 /// (SBTarget::GetDebugger()) will listen to all process events.
424 ///
425 /// @param[in] name
426 /// Basename of process to attach to.
427 ///
428 /// @param[in] wait_for
429 /// If true wait for a new instance of 'name' to be launched.
430 ///
431 /// @param[out]
432 /// An error explaining what went wrong if attach fails.
433 ///
434 /// @return
435 /// A process object for the attached process.
436 //------------------------------------------------------------------
437 ") AttachToProcessWithName;
438 lldb::SBProcess
439 AttachToProcessWithName (SBListener &listener,
440 const char *name,
441 bool wait_for,
442 lldb::SBError& error);
443
444 %feature("docstring", "
445 //------------------------------------------------------------------
446 /// Connect to a remote debug server with url.
447 ///
448 /// @param[in] listener
449 /// An optional listener that will receive all process events.
450 /// If \a listener is valid then \a listener will listen to all
451 /// process events. If not valid, then this target's debugger
452 /// (SBTarget::GetDebugger()) will listen to all process events.
453 ///
454 /// @param[in] url
455 /// The url to connect to, e.g., 'connect://localhost:12345'.
456 ///
457 /// @param[in] plugin_name
458 /// The plugin name to be used; can be NULL.
459 ///
460 /// @param[out]
461 /// An error explaining what went wrong if the connect fails.
462 ///
463 /// @return
464 /// A process object for the connected process.
465 //------------------------------------------------------------------
466 ") ConnectRemote;
467 lldb::SBProcess
468 ConnectRemote (SBListener &listener,
469 const char *url,
470 const char *plugin_name,
471 SBError& error);
472
473 lldb::SBFileSpec
474 GetExecutable ();
475
Greg Clayton3e8c25f2011-09-24 00:52:29 +0000476 bool
477 AddModule (lldb::SBModule &module);
478
479 lldb::SBModule
480 AddModule (const char *path,
481 const char *triple,
482 const char *uuid);
483
Johnny Chenebd63b22011-07-16 21:15:39 +0000484 uint32_t
485 GetNumModules () const;
486
487 lldb::SBModule
488 GetModuleAtIndex (uint32_t idx);
489
Greg Clayton3e8c25f2011-09-24 00:52:29 +0000490 bool
491 RemoveModule (lldb::SBModule module);
492
Johnny Chenebd63b22011-07-16 21:15:39 +0000493 lldb::SBDebugger
494 GetDebugger() const;
495
496 lldb::SBModule
497 FindModule (const lldb::SBFileSpec &file_spec);
498
Greg Clayton1b925202012-01-29 06:07:39 +0000499 lldb::ByteOrder
500 GetByteOrder ();
501
502 uint32_t
503 GetAddressByteSize();
504
505 const char *
506 GetTriple ();
507
Greg Clayton3e8c25f2011-09-24 00:52:29 +0000508 lldb::SBError
509 SetSectionLoadAddress (lldb::SBSection section,
510 lldb::addr_t section_base_addr);
511
512 lldb::SBError
513 ClearSectionLoadAddress (lldb::SBSection section);
514
515 lldb::SBError
516 SetModuleLoadAddress (lldb::SBModule module,
517 int64_t sections_offset);
518
519 lldb::SBError
520 ClearModuleLoadAddress (lldb::SBModule module);
521
Johnny Chenebd63b22011-07-16 21:15:39 +0000522 %feature("docstring", "
523 //------------------------------------------------------------------
524 /// Find functions by name.
525 ///
526 /// @param[in] name
527 /// The name of the function we are looking for.
528 ///
529 /// @param[in] name_type_mask
530 /// A logical OR of one or more FunctionNameType enum bits that
531 /// indicate what kind of names should be used when doing the
532 /// lookup. Bits include fully qualified names, base names,
533 /// C++ methods, or ObjC selectors.
534 /// See FunctionNameType for more details.
535 ///
Johnny Chenebd63b22011-07-16 21:15:39 +0000536 /// @return
Greg Clayton7dd5c512012-02-06 01:44:54 +0000537 /// A lldb::SBSymbolContextList that gets filled in with all of
538 /// the symbol contexts for all the matches.
Johnny Chenebd63b22011-07-16 21:15:39 +0000539 //------------------------------------------------------------------
540 ") FindFunctions;
Greg Clayton7dd5c512012-02-06 01:44:54 +0000541 lldb::SBSymbolContextList
Johnny Chenebd63b22011-07-16 21:15:39 +0000542 FindFunctions (const char *name,
Greg Clayton7dd5c512012-02-06 01:44:54 +0000543 uint32_t name_type_mask = lldb::eFunctionNameTypeAny);
Enrico Granata979e20d2011-07-29 19:53:35 +0000544
545 lldb::SBType
546 FindFirstType (const char* type);
547
548 lldb::SBTypeList
549 FindTypes (const char* type);
Johnny Chenebd63b22011-07-16 21:15:39 +0000550
Jim Inghamcc637462011-09-13 00:29:56 +0000551 lldb::SBSourceManager
552 GetSourceManager ();
553
Johnny Chenebd63b22011-07-16 21:15:39 +0000554 %feature("docstring", "
555 //------------------------------------------------------------------
556 /// Find global and static variables by name.
557 ///
558 /// @param[in] name
559 /// The name of the global or static variable we are looking
560 /// for.
561 ///
562 /// @param[in] max_matches
563 /// Allow the number of matches to be limited to \a max_matches.
564 ///
565 /// @return
566 /// A list of matched variables in an SBValueList.
567 //------------------------------------------------------------------
568 ") FindGlobalVariables;
569 lldb::SBValueList
570 FindGlobalVariables (const char *name,
571 uint32_t max_matches);
572
573 void
574 Clear ();
575
Greg Claytona3955062011-07-22 16:46:35 +0000576 lldb::SBAddress
577 ResolveLoadAddress (lldb::addr_t vm_addr);
Johnny Chenebd63b22011-07-16 21:15:39 +0000578
579 SBSymbolContext
580 ResolveSymbolContextForAddress (const SBAddress& addr,
581 uint32_t resolve_scope);
582
583 lldb::SBBreakpoint
584 BreakpointCreateByLocation (const char *file, uint32_t line);
585
586 lldb::SBBreakpoint
587 BreakpointCreateByLocation (const lldb::SBFileSpec &file_spec, uint32_t line);
588
589 lldb::SBBreakpoint
590 BreakpointCreateByName (const char *symbol_name, const char *module_name = NULL);
591
592 lldb::SBBreakpoint
Jim Ingham1fb8a2d2011-10-11 01:18:55 +0000593 BreakpointCreateByName (const char *symbol_name,
594 uint32_t func_name_type, // Logical OR one or more FunctionNameType enum bits
595 const SBFileSpecList &module_list,
596 const SBFileSpecList &comp_unit_list);
597
598 lldb::SBBreakpoint
Johnny Chenebd63b22011-07-16 21:15:39 +0000599 BreakpointCreateByRegex (const char *symbol_name_regex, const char *module_name = NULL);
600
601 lldb::SBBreakpoint
Jim Ingham03c8ee52011-09-21 01:17:13 +0000602 BreakpointCreateBySourceRegex (const char *source_regex, const lldb::SBFileSpec &source_file, const char *module_name = NULL);
603
604 lldb::SBBreakpoint
Johnny Chenebd63b22011-07-16 21:15:39 +0000605 BreakpointCreateByAddress (addr_t address);
606
607 uint32_t
608 GetNumBreakpoints () const;
609
610 lldb::SBBreakpoint
611 GetBreakpointAtIndex (uint32_t idx) const;
612
613 bool
614 BreakpointDelete (break_id_t break_id);
615
616 lldb::SBBreakpoint
617 FindBreakpointByID (break_id_t break_id);
618
619 bool
620 EnableAllBreakpoints ();
621
622 bool
623 DisableAllBreakpoints ();
624
625 bool
626 DeleteAllBreakpoints ();
627
Johnny Chen092bd152011-09-27 01:19:20 +0000628 uint32_t
Greg Clayton1fa6b3d2011-10-13 18:08:26 +0000629 GetNumWatchpoints () const;
630
631 lldb::SBWatchpoint
632 GetWatchpointAtIndex (uint32_t idx) const;
633
Johnny Chen092bd152011-09-27 01:19:20 +0000634 bool
Greg Clayton1fa6b3d2011-10-13 18:08:26 +0000635 DeleteWatchpoint (lldb::watch_id_t watch_id);
636
637 lldb::SBWatchpoint
638 FindWatchpointByID (lldb::watch_id_t watch_id);
639
Johnny Chen092bd152011-09-27 01:19:20 +0000640 bool
Greg Clayton1fa6b3d2011-10-13 18:08:26 +0000641 EnableAllWatchpoints ();
642
Johnny Chen092bd152011-09-27 01:19:20 +0000643 bool
Greg Clayton1fa6b3d2011-10-13 18:08:26 +0000644 DisableAllWatchpoints ();
645
Johnny Chen092bd152011-09-27 01:19:20 +0000646 bool
Greg Clayton1fa6b3d2011-10-13 18:08:26 +0000647 DeleteAllWatchpoints ();
648
649 lldb::SBWatchpoint
650 WatchAddress (lldb::addr_t addr,
651 size_t size,
652 bool read,
653 bool write);
654
Johnny Chen092bd152011-09-27 01:19:20 +0000655
Johnny Chenebd63b22011-07-16 21:15:39 +0000656 lldb::SBBroadcaster
657 GetBroadcaster () const;
Sean Callananef1f6902011-12-14 23:49:37 +0000658
659 lldb::SBInstructionList
660 GetInstructions (lldb::SBAddress base_addr, const void *buf, size_t size);
661
Johnny Chenebd63b22011-07-16 21:15:39 +0000662 bool
Greg Clayton96154be2011-11-13 06:57:31 +0000663 GetDescription (lldb::SBStream &description, lldb::DescriptionLevel description_level);
Greg Clayton1b925202012-01-29 06:07:39 +0000664
665 %pythoncode %{
Greg Claytonb302dff2012-02-01 08:09:32 +0000666 class modules_access(object):
667 '''A helper object that will lazily hand out lldb.SBModule objects for a target when supplied an index, or by full or partial path.'''
668 def __init__(self, sbtarget):
669 self.sbtarget = sbtarget
670
671 def __len__(self):
672 if self.sbtarget:
673 return self.sbtarget.GetNumModules()
674 return 0
675
676 def __getitem__(self, key):
677 num_modules = self.sbtarget.GetNumModules()
678 if type(key) is int:
679 if key < num_modules:
680 return self.sbtarget.GetModuleAtIndex(key)
681 elif type(key) is str:
682 if key.find('/') == -1:
683 for idx in range(num_modules):
684 module = self.sbtarget.GetModuleAtIndex(idx)
685 if module.file.basename == key:
686 return module
687 else:
688 for idx in range(num_modules):
689 module = self.sbtarget.GetModuleAtIndex(idx)
690 if module.file.fullpath == key:
691 return module
692 # See if the string is a UUID
693 the_uuid = uuid.UUID(key)
694 if the_uuid:
695 for idx in range(num_modules):
696 module = self.sbtarget.GetModuleAtIndex(idx)
697 if module.uuid == the_uuid:
698 return module
699 elif type(key) is uuid.UUID:
700 for idx in range(num_modules):
701 module = self.sbtarget.GetModuleAtIndex(idx)
702 if module.uuid == key:
703 return module
704 elif type(key) is re.SRE_Pattern:
705 matching_modules = []
706 for idx in range(num_modules):
707 module = self.sbtarget.GetModuleAtIndex(idx)
708 re_match = key.search(module.path.fullpath)
709 if re_match:
710 matching_modules.append(module)
711 return matching_modules
712 else:
713 print "error: unsupported item type: %s" % type(key)
714 return None
715
716 def get_modules_access_object(self):
Greg Claytonb6a5ba62012-02-03 03:22:53 +0000717 '''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 +0000718 return self.modules_access (self)
719
720 def get_modules_array(self):
Greg Claytonb6a5ba62012-02-03 03:22:53 +0000721 '''An accessor function that returns a list() that contains all modules in a lldb.SBTarget object.'''
Greg Claytonb302dff2012-02-01 08:09:32 +0000722 modules = []
723 for idx in range(self.GetNumModules()):
724 modules.append(self.GetModuleAtIndex(idx))
725 return modules
726
727 __swig_getmethods__["modules"] = get_modules_array
728 if _newclass: x = property(get_modules_array, None)
729
730 __swig_getmethods__["module"] = get_modules_access_object
731 if _newclass: x = property(get_modules_access_object, None)
732
Greg Clayton1b925202012-01-29 06:07:39 +0000733 __swig_getmethods__["process"] = GetProcess
734 if _newclass: x = property(GetProcess, None)
735
736 __swig_getmethods__["executable"] = GetExecutable
737 if _newclass: x = property(GetExecutable, None)
738
739 __swig_getmethods__["debugger"] = GetDebugger
740 if _newclass: x = property(GetDebugger, None)
741
Greg Clayton1b925202012-01-29 06:07:39 +0000742 __swig_getmethods__["num_breakpoints"] = GetNumBreakpoints
743 if _newclass: x = property(GetNumBreakpoints, None)
744
745 __swig_getmethods__["num_watchpoints"] = GetNumWatchpoints
746 if _newclass: x = property(GetNumWatchpoints, None)
747
748 __swig_getmethods__["broadcaster"] = GetBroadcaster
749 if _newclass: x = property(GetBroadcaster, None)
750
751 __swig_getmethods__["byte_order"] = GetByteOrder
752 if _newclass: x = property(GetByteOrder, None)
753
754 __swig_getmethods__["addr_size"] = GetAddressByteSize
755 if _newclass: x = property(GetAddressByteSize, None)
756
757 __swig_getmethods__["triple"] = GetTriple
758 if _newclass: x = property(GetTriple, None)
759 %}
760
Johnny Chenebd63b22011-07-16 21:15:39 +0000761};
762
763} // namespace lldb