UOS+KIRIN截屏出错研究

简介: UOS+KIRIN截屏出错研究

泰OFFICE有个BUG,说在UOS+KIRIN系统上,截屏卡死。在KYLIN和其他UOS上,则正常。这么怪异的问题,当然很难解决。只能由吾出场,从JDK角度来看看。


 使用的是Robot进行屏幕。于是吾进行跟踪,出错顺序依次是:


Robot.createScreenCapture()

XRobotPeer.getRGBPixels

XRobotPeer.getRGBPixelsImpl()

awt_Robot.c:getRGBPixelsImpl

 这里已经是C了。在这里进行跟踪,发现是compositeGetOverlayWindow导致的。吾仔细想了半天,莫非是窗口产生了没有释放?那找找有没有对应的释放函数。别说,还真找到了一个释放函数:XCompositeGetOverlayWindow。加上之后,果然不死了。


https://www.linuxhowtos.org/manpages/3/XCompositeGetOverlayWindow.htm


 不死的问题解决了,拿到的是黑屏,也就是没有得到数据。于是又进行了跟踪。


awt_Robot.c:getWindowImage

multiVis.c:ReadAreaToImage

通过对比正确顺序,发现:正确的时候XGetImage()返回结果,错误的时候为NULL。


于是进行了修改:如果有数据设置一个标志;返回时根据标志来决定返回对象还是NULL。


为什么没有数据呢?这个没有进一步分析。


 实际上这个系统也能截屏。不知道是系统版本问题(比如UI不一样)?还是显卡适配问题?

目录
相关文章
|
5月前
|
存储 SQL 关系型数据库
遇上Linux异常,这样处理才丝滑!
遇上Linux异常,这样处理才丝滑!
|
7月前
|
机器人 API 开发者
Python基于Mirai开发的QQ机器人保姆式教程(亲测可用)
Python基于Mirai开发的QQ机器人保姆式教程(亲测可用)
麒麟系统开发笔记(十一):在国产麒麟系统上使用gdb定位崩溃异常方法流程进阶定位代码行数及专项测试Demo
上一篇,通过研究,可以定位到函数,本篇进一步优化,没有行数,程序较为复杂的时候,就无法定位,所以进一步定位。   本篇做了qBreakpad的研究,但是没有成功,过程也还是填出来,后来突然注意到gdb出现行数的方法,并通过了几轮测试以及实战,确实可以定位到行数,所以为了大家方便,把国企麒麟上的Qt崩溃方法分享出来。   本篇文章比较长,就不分篇了,同时还做了专项测试。
麒麟系统开发笔记(十一):在国产麒麟系统上使用gdb定位崩溃异常方法流程进阶定位代码行数及专项测试Demo
|
NoSQL Ubuntu
麟系统开发笔记(十):在国产麒麟系统上使用gdb定位崩溃异常方法流程以及测试Demo
本篇就适合代码崩溃的方法,可以定位到代码崩溃原因,测试Demo。
麟系统开发笔记(十):在国产麒麟系统上使用gdb定位崩溃异常方法流程以及测试Demo
一个小工具,让你再也不用忍受ChatGPT无休止的错误提示了!
这是一款开源的、免费的、高效的`ChatGPT`畅聊插件,它可以让你的聊天无比滑索,一次劳永逸摆脱各种报错和警告。
|
缓存 监控 安全
CleanMyMac X苹果认可的工具值得安装吗?要不要下载?
CleanMyMac X是苹果认可的工具,可以放心使用。如果你对它是否是恶意软件有疑问,请不要担心,可以免费试用。如果你真的亲自尝试,会更容易发现它的感觉和表现。安装只需要一分钟,而且很快,所以如果你有一点好奇心,为什么不试一试呢?CleanMyMac X下载如下复制:http://t.csdn.cn/GHpsz
213 0
|
人工智能 文字识别 自然语言处理
ABBYY FineReader2023汉化版OCR识别软件更新
ABBYY FineReader是一款超强大的OCR识别软件,ABBYY 轻松将任意文档转换成您需要的可编辑、引用、归档、搜索或分享的信息!ABBYY FineReader 通过将纸质文档、PDF文件和数码照片中的文字转换成可编辑、可搜索的文件,让您的电脑处理更具效率,摆脱从前的烦恼。
385 0
|
程序员
苹果电脑截屏的几种办法
苹果电脑截屏的几种办法
756 0
|
索引 Windows
Win系统 - 如何评价Vista在PC史上的历史地位?
Win系统 - 如何评价Vista在PC史上的历史地位?
265 0
Win系统 - 如何评价Vista在PC史上的历史地位?
|
安全 Android开发 iOS开发
一张图片使Android手机集体变砖,目前尚无解决方法
近日,一名网友在 Twitter 上传了一张壁纸并表示该壁纸会使他的三星手机崩溃。此前已经有日历 Bug 导致三星手机集体崩溃的事情发生,而这一次三星手机再次中招。只因为使用了一张风景壁纸就能导致手机崩溃?经该网友测试,不止是三星,包括谷歌亲儿子 Google Pixel 在内的众多手机品牌纷纷中招。
一张图片使Android手机集体变砖,目前尚无解决方法