news 2026/5/1 8:31:51

跟AI学一手之自定义调试函数或者类

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
跟AI学一手之自定义调试函数或者类

最后一招是 macos 专用的,有帮助,所以记录一下

from gevent import monkey monkey.patch_all() import signal import sys import os # 检查是否有信号处理 def debug_signal(signum, frame): print(f"收到信号 {signum},堆栈:", file=sys.stderr) import traceback traceback.print_stack(frame) sys.exit(1) # 改为退出前打印 # 替换所有终止信号的处理 for sig in [signal.SIGTERM, signal.SIGINT, signal.SIGQUIT]: signal.signal(sig, debug_signal) from __init_main__ import * #----------------------------------------------------------------------------------------------------------------------- #----------------------------------------------------------------------------------------------------------------------- # 依赖接口 #----------------------------------------------------------------------------------------------------------------------- from libp import * from ui import * from w9099_01_data import * from w9099_01_i1 import * from w9099_01_gb28181.w9099_01_gb28181_main import gb28181_main from w9099_01_rtsp.w9099_01_rtsp_server_main import w9099_01_rtsp_main from threading import Thread import traceback from w9099_01_api.app import bootstrap_w9099_01_api_server #----------------------------------------------------------------------------------------------------------------------- #----------------------------------------------------------------------------------------------------------------------- # 主进程入口 #----------------------------------------------------------------------------------------------------------------------- import atexit def on_exit(): # 打印退出时的堆栈 print("\n" + "="*50, file=sys.stderr) print("进程即将退出,堆栈:", file=sys.stderr) traceback.print_stack(file=sys.stderr) print("="*50, file=sys.stderr) sys.stderr.flush() # 注册退出钩子 atexit.register(on_exit) # 同时捕获 SystemExit original_exit = sys.exit def custom_exit(code=0): print(f"\n!!! sys.exit({code}) 被调用 !!!", file=sys.stderr) traceback.print_stack(file=sys.stderr) sys.stderr.flush() original_exit(code) sys.exit = custom_exit import threading import time def check_threads(): """检查是否所有非守护线程都已结束""" print("活跃线程:", threading.enumerate()) for t in threading.enumerate(): print(f" {t.name}: daemon={t.daemon}, alive={t.is_alive()}") # 在程序退出前调用 import atexit atexit.register(check_threads) import threading import sys import traceback # Python 3.8+ 官方推荐方式,无需替换 Thread 类 def handle_thread_exception(args): print(f"线程 {args.thread.name} 异常: {args.exc_type.__name__}: {args.exc_value}", file=sys.stderr) traceback.print_exception(args.exc_type, args.exc_value, args.exc_traceback) threading.excepthook = handle_thread_exception # 捕获线程中的未处理异常(Python 3.8+) if hasattr(threading, 'excepthook'): def handle_thread_exception(args): print(f"线程 {args.thread.name} 异常:", file=sys.stderr) traceback.print_exception(args.exc_type, args.exc_value, args.exc_traceback) threading.excepthook = handle_thread_exception import faulthandler import sys # 启用崩溃转储 faulthandler.enable(file=sys.stderr, all_threads=True) # 可选:设置超时,如果卡住就dump堆栈 # faulthandler.dump_traceback_later(30, repeat=True) # 30秒后打印堆栈 import faulthandler import sys import os # 必须写入文件,macOS 终端可能丢失输出 crash_log = open('/tmp/python_crash.log', 'w') faulthandler.enable(file=crash_log, all_threads=True) # 同时设置超时 dump faulthandler.dump_traceback_later(5, repeat=True, file=crash_log) print("程序启动", file=crash_log) crash_log.flush()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 8:15:04

Nodejs毕设项目推荐-基于VUE框架的实时新闻推送平台新闻分类管理 、新闻信息管理、新闻投稿管理、论坛管理【附源码+文档,调试定制服务】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/30 9:37:47

微论:AI的分层自我认知

AI的分层自我认知:从黑箱到透明进化的四重革命 引言:当AI开始“认识自己” 2023年,一名测试者向大语言模型提问:“你了解自己的内部结构吗?”模型回答:“我知道自己是基于Transformer架构的AI,但…

作者头像 李华
网站建设 2026/5/1 6:54:36

基于深度学习YOLOv12的大豆杂草检测系统(YOLOv12+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)

一、项目介绍 本文设计并实现了一种基于深度学习YOLOv12的大豆田间杂草识别检测系统,结合YOLO格式标注数据集与用户友好的UI界面,为精准农业中的杂草治理提供自动化解决方案。系统采用改进的YOLOv12模型,针对大豆植株(soy plant&…

作者头像 李华