Python cProfile/pstats вызывает переполнение?

#python #stack-overflow #exit-code #cprofile

Вопрос:

Я пытаюсь профилировать довольно большой проект, используя следующий декоратор в моей функции main (), но в строке 9 я получаю «Процесс завершен с кодом выхода -1073741571 (0xC00000FD)», поиск в Google, похоже, относится к переполнению стека.

Означает ли это, что я не могу профилировать всю свою программу сразу? Я не использую рекурсию, что, по-видимому, является частой причиной этой проблемы. В моем проекте используются эволюционные алгоритмы, такие как NSGA3. Я заметил, что изменение количества итераций эволюции может привести к тому, что проблема не возникнет, но нет четкой закономерности (проблема возникает с 10 итерациями, но не с 200).

Есть ли способ получить больше информации, кроме кода выхода, чтобы помочь мне найти проблему? Я попытался проследить за переменными с помощью отладчика pycharm, но это не помогло, так как я действительно не знаю, что ищу. Проверка внутри pstats, выполнение выполняется init->self.init->>self.load_stats->>>arg.create_stats->>>>self.snapshot_stats->>>>>self.getstats, и на этом оно заканчивается кодом выхода -1073741571 (0xC00000FD).

Я знаю, что вы, ребята, ограничены без полного кода, но любые предложения о том, как я могу отследить проблему, приветствуются.

 def inner(*args, **kwargs):
    pr = cProfile.Profile()
    pr.enable()
    retval = fnc(*args, **kwargs)
    pr.disable()
    s="dirpath\profiling_cumulative.txt"
    with open(s,'w') as stream:#io.StringIO()
        sortby = 'cumulative'
        ps = pstats.Stats(pr, stream=stream) #the program stops here 
        ps.sort_stats(sortby)
        ps.print_stats()
    s="dirpath\profiling_tottime.txt"
    with open(s,'w') as stream:
        sortby = 'tottime'
        ps = pstats.Stats(pr, stream=stream).sort_stats(sortby)
        ps.print_stats()
    return retval