代码之家  ›  专栏  ›  技术社区  ›  Miguel Ventura

调试NSIS安装程序的方法?

  •  12
  • Miguel Ventura  · 技术社区  · 15 年前

    到目前为止,我使用了以下方法 Printf博士

    • 在一个 .nsh NSIS_DEBUG_MSG 宏根据a的值 DEBUG 定义
      • 如果 ,宏将触发 对话框 带有调试消息
      • 调试

    这种方法对我很有用,但也有一些缺点:

    • 它需要我填充我觉得是调用失败的代码 并重建安装程序几次,直到我得到足够的信息来解决问题
    • 如果我的问题是安装程序本身失败(如果安装程序死了),这对我没有好处

    所以我想知道的是你对这些安装程序使用了什么样的调试方法,希望我能改进我的方法。

    4 回复  |  直到 15 年前
        1
  •  6
  •   HX_unbanned    11 年前

    在我使用NSIS期间,有以下几点值得注意:

    我发现你不能依赖任何基于NSIS的调试方法。它可能会崩溃。。你的安装程序也会随之崩溃。不漂亮,嗯?:(

    我发现没有实时自动NSIS测试的冗长输出就像用自行车引擎驾驶凯迪拉克一样:)


    编辑: 从第三方工具开始总是个好主意。例如,无需为GUI操心,因为它总是更容易使用以下工具:


    编辑2:

    结果是我在 nsDialog:Show 加上我在wiki上更新了图片:)。。唯一剩下的就是从 svnlook :)


    svnlook的需要也通过构建一个svn日志来解决——使用nsisv2.44头文件为Delphi和lazaruside0.9.30.2:)向Lazarus致敬!

    呜呜!:)


    点击这里的小讨论: http://forums.winamp.com/showthread.php?t=325521

        2
  •  5
  •   daramarak    13 年前

    节省了我很多时间的是使用NSIS创建的日志。编译脚本时的日志和安装日志。它们允许我检查我定义的宏是否正在使用,以及安装程序是否实际运行了它们应该运行的脚本。

    它可能看起来太少了,但这实际上是我所需要的一切,以保持我的安装软件的50+nsh文件运行,以及分而治之的原则。

        3
  •  2
  •   AaronLS    15 年前

    您可以从具有高级日志记录的官方站点下载NSIS的特殊版本之一。这将为您提供非常详细的日志信息,使调试更容易。

        4
  •  2
  •   Anders    12 年前

    DumpState plugin 比解决堆栈问题的基本messagebox要好得多。我也倾向于使用一个宏来设置所有寄存器;$0=r0,$1=r1等等,所以我知道堆栈处于正确的状态。当然,这只在设计阶段有用,对终端用户系统的调试没有多大用处。。。