windows程序执行没有输出也没有报错

今天编写了一个简单的程序验证系统环境,结果不管是双击打开,还是命令行打开都没有任何输出,明明main函数的入口就有打印的,不可能printf函数都出问题。

如果有错的话,应该会弹窗报错才对。于是想到了以前排查问题时用到的事件查看器。

然后根据时间和类型找到可以大概找到位置

点击对应的条目后,常规信息中有程序的名字,这样就能确定出错的问题了。

如上信息看起来像是以前的错误弹窗,这里只是没弹窗而已,错误信息是一致的,不影响排查问题的思路。

如上提示缺失vcruntime140.dll,如果程序是自己编写的Visual studio可以配置运行时库MT,不过大部分程序好像都是在自己的安装目录附带了程序所依赖的各种动态库.

windows事件查看器介绍

windows中的事件查看器包括关于硬件、软件、系统、安全事件等问题的信息,打开后,定位到windows日志栏下,可以看到有三种类型的日志,分别是应用程序日志、安全日志和系统日志,如上截图中展示。

应用程序日志

应用程序日志记录了系统程序运行时的事件,例如错误、崩溃等情况,包括安装的程序及系统自带的程序。

安全日志

安全日志记录了一些用户登录事件、文件的创建打开删除事件等。

系统日志

系统日志记录了windows系统组件的一些事件,例如启动过程中加载的驱动程序失败。当计算机为域控制器时还包括目录服务日志,文件复制服务日志。当计算机为dns服务器时还包括dns服务器日志。

所有的用户都可以查看应用程序日志和系统日志,只有管理员才能查看安全日志。

日志级别

事件查看器包含了5种级别,分别是错误、警告、信息、成功审核、失败审核。

大多数是操作痕迹都会在windows的事件查看器中留有痕迹。可以用来协助排查问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
误代码 `[WinError 10093]` 是由于在 Windows 平台上,使用 `subprocess.PIPE` 重定向子进程的标准输出时,可能会导致套接字初始化误。 为了解决这个问题,您可以尝试在创建子进程之前添加 `win32pipe` 模块的导入语句。 以下是一个示例代码,演示如何解决 `[WinError 10093]` 误: ```python import subprocess import win32pipe # 创建子进程前导入 win32pipe 模块 subprocess.preload_modules = ('win32pipe',) # 创建子进程并执行命令 process = subprocess.Popen(['your_command'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) # 循环读取子进程的输出 while True: # 读取一行输出 line = process.stdout.readline().decode('utf-8') # 如果读取到空行,表示输出已经到达末尾 if not line: break # 处理输出数据 # TODO: 进行你需要的处理 # 检查子进程是否已经结束 if process.poll() is not None: # 子进程已经结束,可以进行后续处理 # TODO: 进行你需要的后续处理 ``` 在上述代码中,我们首先通过 `subprocess.preload_modules` 设置了要预加载的模块为 `'win32pipe'`。然后,我们创建了一个子进程 `process`,并使用 `subprocess.PIPE` 将其标准输出重定向到管道。 接下来的代码与之前的示例相同,循环读取子进程的输出,并进行相应的处理。最后,我们使用 `process.poll()` 来检查子进程是否已经结束。 请根据您的具体需求修改代码中的 `'your_command'` 和处理输出的部分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值