Robot Framework Integrated Development Environment (RIDE)
debugconsole.py
Go to the documentation of this file.
1 # Copyright 2008-2015 Nokia Networks
2 # Copyright 2016- Robot Framework Foundation
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 # http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 
16 import sys
17 import threading
18 import traceback
19 
20 
22  id2name = dict((th.ident, th.name) for th in threading.enumerate())
23  for threadId, stack in sys._current_frames().items():
24  print(id2name[threadId])
25  traceback.print_stack(f=stack)
26 
27 
28 def start(ride):
29  import code
30  help_string = """\
31 RIDE - access to the running application
32 print_stacks() - print current stack traces
33 """
34  console = code.InteractiveConsole(
35  locals={'RIDE': ride, 'print_stacks': _print_stacks})
36  thread = threading.Thread(target=lambda: console.interact(help_string))
37  thread.start()