Coverage for src/robotide/application/debugconsole.py: 31%
14 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-06 10:40 +0100
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-06 10:40 +0100
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.
16import sys 1ab
17import threading 1ab
18import traceback 1ab
21def _print_stacks(): 1ab
22 id2name = dict((th.ident, th.name) for th in threading.enumerate())
23 for thread_id, stack in sys._current_frames().items():
24 print(id2name[thread_id])
25 traceback.print_stack(f=stack)
28def start(ride): 1ab
29 import code
30 help_string = """\
31RIDE - access to the running application
32print_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()