人难今,求助一下,Linux系统,程序的错误打印会自动保存吗?
- 我好像是小号如题目。。。是这样的,系统是Ubuntu16 运行了的程序是qt5写的,可能程序有bug,偶尔会突然崩溃关闭,程序崩溃之后应该会有错误信息,请问一下这个错误信息,Ubuntu系统会保存起来嘛?
如果Ubuntu不会自动保存,我qt程序有什么办法保存嘛?
偶发崩溃哎,我看不到错误信息,崩溃就被关机了。
看不到错误信息就没办法查找原因,虽然可能那个错误信息也没什么用
iOS fly ~ - jckimisegmentation fault 好像会触发一个core dump的。如果不是的话,那就只能你自己写Log到某个路径下了。
- 我好像是小号
- 我好像是小号
- jckimi回复3#我好像是小号
废话,log肯定要自己写啊,弄个简单的log系统,分级别打印到文件,或者console上。崩溃那个时间肯定没法儿自己记录,但是从前面的log,可以大致看出在哪个地方崩溃的。慢慢找。core dump你即使找到了,怕是你也看不懂,里面都是一些pc寄存器,栈空间什么的dump。 - 我好像是小号回复5#jckimi
咦,qt程序崩溃了,会显示一行英文信息啊,大概指出是什么错误,比如段错误,内存越界什么的 iOS fly ~ - 我好像是小号
- ipzh程序又不是你写的,让写的人解决
- 我好像是小号回复8#ipzh
写的不懂Linux系统啊,只懂Windows qt iOS fly ~ - ipzh那就按上面的说法,程序中自己打log
- sslxf000试试nohup 把日志重定向到文件。
- ywergs看程序运行路径下有core文件没 或则自己写一个signal handler 调用backtrace这样的api 自己写到一个文件去。
- by曲终人散var/log下也是程序控制输出的,不是自动保存的,程序没写就没有,写了肯定在某个地方。
- 我好像是小号回复13#by曲终人散
qt开发 c加加的写的程序,要怎么样输出崩溃信息到日志?有啥关键词嘛?我了解一下,好说给程序猿听 iOS fly ~ - vxworks加上strace启动,跑一把看看如何
- by曲终人散
- 多聋这么纯的技术问题还是去csdn问吧。
顺便打一句,ulimit -c unlimited。
你找这个程序员不合格,qt就是为了跨平台用的,只会win做什么跨平台。 - Cappuccin0楼上用ulimit的办法让程序可以产生coredump最省事 大部分信息基本都有
要是做不到就自己加日志 用syslog或者写到stderr再转向到文件或者直接写文件 只是用syslog可能异常情况记录的东西更多
最好自己在程序里加上abort/segfault/terminal的signal handler 程序挂掉之前记一下调用栈什么的会省事很多 iOS fly ~