HP Fortify 4.3 - 结果中的行号与代码不同步

HP Fortify 4.3 - Line Numbers in Findings Not Synchronized with Code

我的一位同事最近 运行 使用 HP Fortify 4.3 在他的计算机上安装了 HP Fortify 4.3 扫描代码库。

当我在我的 HP Fortify 4.3 安装中打开 .fpr 文件时,当我双击问题时,问题中的行号并不总是与代码中的行匹配 window。

例如,如果在特定 Java class 的第 214 行报告了一个问题,当我双击该问题以在代码 window 中查看它时,突出显示的第 214 行不包含报告的问题。它可能会在第 205 行。

并不是每个源文件都会出现这种情况。

可能是什么原因?我假设 .fpr 文件包含已审计代码的快照。如果这是真的,那为什么当我在 Fortify 安装中打开文件时行号不同步?

提前致谢!

是的,.fpr 文件确实包含已审核代码的快照。但这并不是 Fortify 在显示代码时使用的首选。 (源代码是压缩的,所以出于性能原因[我认为]不使用它)。如果您的计算机上有一份源代码副本与您同事扫描的代码位于同一位置,Fortify 将使用它。而且可能是扫描后源代码发生了变化

当Fortify去显示源代码,在扫描的外部路径找不到代码时,会显示信息:

The current source path is invalid, but the project contains a copy of the scanned source code. Would you like to extract the source code to a location on disk, or update the path to an existing location?

有三个选项:

  • 使用 FPR 中包含的源
  • 取消
  • 更新路径

如果您想要扫描的内容,请选择第一个选项

如果您想让 Fortify 指向您系统上源代码的位置,请使用第三个选项。

如果您希望它使用内部源,请执行以下操作

  1. 打开FPR
  2. 执行工具 -> 提取源代码
  3. 选择一个位置

执行此操作时,Fortify 将自动开始使用该位置来提取源代码以供显示。