原总结调试排错troubleshootteklaprocess monitorsysinternals

缘起

最近同事使用.tsep安装Tekla插件的时候,Tekla提示该插件已经存在了,需要卸载后再安装。同事找了半天,没找到怎么卸载,我也没找到。于是决定弄清楚Tekla是 如何判断一个插件安装与否的。 想必看过我其它排错文章的小伙伴已经猜到了,我们今天文章中的主角依然是process monitor。好了,话不多说,好戏马上开始。

调查

在开始调查之前,我们可以先思考下,Tekla是如何判断一个插件安装与否的?

我能想到如下三种可能:

  • 通过读取注册表来判断。
  • 通过配置文件来判断。
  • 通过加载特定目录下符合条件(e.g. 导出某些约定好的接口)的文件来判断。

这三种情况,我们都可以通过process monitor监控到。

捕获Tekla操作记录

打开process monitor,开始监视。然后双击.tsep进行安装,当弹出错误对话框的时候,关闭process monitor监视。

过滤我们关心的记录

process monitor会捕获超级多的事件。如果不能进行有效的过滤,想找到我们关心的事件,无异于大海捞针。但是我们要根据什么条件来过滤呢?

首先,我们需要根据进程名进行过滤,但是我们怎么知道安装程序对应的进程名呢? process monitorInclude Process From Window功能可以很方便的帮我们根据窗口找到其对应的进程。按住该按钮(大写字母A右侧,像靶子的那个按钮),拖动到目标窗体,松开即可。如下图:

除了根据进程名过滤,我们还需要根据其它条件进一步过滤。我们的过滤条件大概是这样的:

  • Process Name只关心TsepFileDispatcher.exe
  • Event Class只关心RegistryFile System,不关心NetworkProcess and Thread
  • Operation排除Write相关事件,只关心Read相关事件即可。
  • Path排除以.dll.exe结尾的路径,并且排除windows.net相关的路径。
  • Result只关心SUCCESS类型的。

下图是我们刚刚设置的过滤规则(为了突出重点,我删掉了process monitor自带的过滤规则)。

经过以上过滤,剩下的事件就很少了,我们可以分别查看RegistryFile System的事件。我们先看File System事件。

interested-readfile-event

当我看到

C:\ProgramData\Tekla Structures Learning\2018\Extensions\Installed\{叠合板模板}{1.0}{73703402-ee5b-4058-bf6a-ad1077481245}\Manifest.xml

这条记录的时候,我猜测Tekla会把插件装在子目录Extensions\Installed下,我要安装的插件标识符是叠合板模板,版本是{1.0},对应的GUID{73703402-ee5b-4058-bf6a-ad1077481245}

{% note info %}

说明: 为什么不看Registry事件呢?因为我找了一圈,没有很容易的在里面找到我关心的事件。

{% endnote %}

大功告成

至此,我们已经找到了我们关心的事件。使用Everything在本地搜索叠合板模板,删除所有搜到的记录。再次双击.tsep文件进行安装,顺利完成。

[原]排错实战——解决Tekla通过.tsep安装插件失败的问题相关推荐

  1. 全面解决Jenkins离线、安装插件失败

    记录一下究极折磨俩天Jenkins安装 一.离线 1.网上常规解决方法,修改配置文件 修改/var/lib/jenkins/updates/default.json jenkins在下载插件之前会先检 ...

  2. 排错实战——解决c++编译错误:error C2059: illegal token on right side of '::'

    缘起 最近,项目里出现了一个奇怪的编译错误.乍看错误提示,真有丈二的和尚,摸不着头脑的感觉.解决之后,又是这么的合情合理.具体是什么样的问题呢?一起来看看吧. 说明: 实际项目中的错误隐藏的更深,完全 ...

  3. [原]排错实战——通过对比分析sysinternals事件修复程序功能异常

    缘起 最近,我们程序的某个功能在一台机器上不正常,但是在另外一台机器上却是正常的.代码是同一份,vs版本也一样(打的补丁也一样).编译出来的程序在两台电脑上运行的结果就是不一样.惊不惊喜,意不意外?如 ...

  4. vba vbscript.regexp加载dll错误_[原]排错实战——拯救加载调试符号失败的IDA

    本文之前发表的时候有些问题,作为强迫症患者的我又重新编辑后再次发表.如果您已经看过,请忽略.望见谅. 缘起 最近想借助IDA逆向一个函数.在windows下,调试器(比如vs, windbg)可以通过 ...

  5. [原]排错实战——拯救加载调试符号失败的IDA

    本文之前发表的时候有些问题,作为强迫症患者的我又重新编辑后再次发表.如果您已经看过,请忽略.望见谅. 缘起 最近想借助IDA逆向一个函数.在windows下,调试器(比如vs, windbg)可以通过 ...

  6. 解决WordPress博客安装插件时提示输入FTP用户名和密码的问题

    http://www.lajiz.cn/1310.html 自从垃圾站博客从电信通搬家到万网虚拟主机后,总是出现问题,刚开始是万网M3主机禁用mail()函数导致WordPress博客无法发送评论回复 ...

  7. Wordpress安装插件失败

    Wordpress安装插件失败,可能是由于没有设置PHP环境变量 解决: 1.添加PHP的系统环境变量,设置php.exe所在路径,如下图是windows 10的设置环境: 打开命令行,执行php - ...

  8. Atom 安装插件失败的解决方案

    Atom 安装插件失败的解决方案 原文首发 http://blog.lll0.net/post/atom_install_fail.html 如果能到墙外面去看看的,下面的对你没有太多的作用 我们在第 ...

  9. 一招解决python pip install 安装库失败

    PIP是python强大的安装利器,但是我们经常遇到安装库失败的问题,以下本人觉得最有效的解决方法: 1.打开 https://www.lfd.uci.edu/~gohlke/pythonlibs网站 ...

最新文章

  1. python录入数据至ppt_用 Python 让你的 PPT 数据动起来
  2. php 屏蔽mysql错误提示_PHP.ini中配置屏蔽错误信息显示和保存错误日志
  3. 并发编程(四):也谈谈数据库的锁机制
  4. C++与QML逻辑分离
  5. Python 3 利用 Dlib 和 sklearn 人脸笑脸检测机器学习建模
  6. 第一课[编辑器设置-VC++6.0]
  7. 不同曲线设置标签_带动态标签的面积曲线图
  8. 远程桌面保存密码(凭据)的备份导出
  9. JAVA day24,25,26 异常(try、catch、finally、throw、throws),线程(Thread、Runnable、Callable)
  10. android togglebutton 自定义,自定义控件之-----ToggleButton
  11. mc服务器天赋系统,[娱乐|经济]GokiStats——全新的天赋系统插件MySQL可用[全版本]...
  12. html页面数学公式添加(附图)
  13. linux vim yy,linux vim的使用方法
  14. gliffy confluen插件gliffy-confluence-plugin-5.1.ja破解
  15. 《东周列国志》第九十回 苏秦合纵相六国 张仪被激往秦邦
  16. 2016技术众包风云:挑战与机遇并行!
  17. Mortal Kombat Tower(dp)
  18. 大话西游免费版最新服务器是,2020年4月1日服务器数据互通公告
  19. c语言网页版在线编译器_梦幻西游网页版在线玩 梦幻西游网页版礼包兑换码_梦幻西游网页版...
  20. 华为交换机初始化_我想问华为 s5700交换机 1。请问怎么恢复出厂设置? 2。如果没有密码又怎么恢复出厂设置? 谢谢了...

热门文章

  1. cheddar调度性模拟器
  2. 如任何评估人力资源管理系统的优势劣势?
  3. React Native开发之路(三)
  4. 【高性能计算】MPI
  5. 手把手教你火鸟门户系统源码v4.8升级到v4.9对接聊天并安装养老模块及圈子动态模块步骤
  6. office365字体选项卡里的字体发虚不清晰
  7. Blender:超详细的甜甜圈制作教程(二)【原教程 油管:Blender Guru】——渲染篇
  8. 自己动手画CPU《计算机组织与结构实验》之计算机数据表示 第1关:汉字国标码转区位码实验 超详细教学
  9. 幕布,XMind , Effie , 让你对学习这件事上瘾
  10. threejs渲染效果