У меня есть сценарий Python, работающий в Linux (Ubuntu 18.04), который создает процессы с использованием библиотеки multiprocessing , назначая им функции для выполнения. Проблема в том, что одна из этих функций застревает, и я хочу знать, где это происходит. Я попытался использовать python -m trace -l myscript.py
, но он не может показать функции, которые выполняются в подпроцессах. Хотя приведенный ниже скрипт не тот, который я использую, такая ситуация также возникает при попытке отследить его функции.
import multiprocessing
def print_hello():
print('hello world')
def print_hello_inside_trace():
print('trace: hello world')
def trace_function():
print_hello_inside_trace()
if __name__ == '__main__':
print_hello()
process = multiprocessing.Process(target=trace_function)
process.start()
process.join()
Итак, мой вопрос: есть ли способ отследить код, выполняющийся внутри Python подпроцессы? Также, из любопытства, можно ли отслеживать Python потоков?