主要内容

解决 Polyspace 连接器问题

问题

您运行了 Polyspace® 命令,该命令运行失败并且错误消息大致如下:

polyspace:pscore:noPortForConnectorError

可能的解决方案

Polyspace 使用内部服务器(Polyspace 连接器)处理不同 Polyspace 组件之间的通信。当您启动 Polyspace 时,该连接器的实例在系统分配的随机端口上启动。

要检查该连接器能否连接到已打开端口并且可访问,请执行以下操作:

  1. 关闭所有 Polyspace 进程。

  2. 导航到 polyspaceroot/polyspace/bin/ARCH 并运行 polyspace-connector 二进制文件,在命令行中手动启动 Polyspace。例如,在 Linux® 上键入以下命令:

    cd polyspaceroot/polyspace/bin/ARCH
    ./polyspace-connector
    其中,polyspaceroot 是 Polyspace 的安装文件夹,例如 /usr/local/PolyspaceARCH 是平台特定子文件夹,例如在 Linux 的情况下是 glnxa64

  3. 连接器启动后,您会看到大致如下的消息:

    Started ServerConnector@123a456b{HTTP/1.1, (http/1.1)}{0.0.0.0:portNum}
    其中 portNum 对应于启动连接器的端口,例如 9991。

  4. 运行以下命令以检查该端口是否处于打开状态。

    (echo >/dev/tcp/localhost/portNum) &>/dev/null && echo "open" || echo "closed"

    • 如果 (echo > ...) 命令返回 closed,请检查该端口未打开的可能原因。例如,防火墙配置为不允许 portNum 端口上的流量,或者在不该设置的情况下设置了系统变量 http_proxyHTTP_PROXY

    • 如果 (echo > ...) 命令返回 open,请运行以下命令以检查连接器是否可访问:

      curl http://127.0.0.1:portNum/metadata
      如果连接器可访问,该命令会返回包含 {"statusCode":"SUCCESS" 的 JSON 输出。

      如果您可以访问连接器,请尝试重新运行之前失败的 Polyspace 命令。

如果属于以下任一情况,请为连接器启用调试模式,重新运行之前失败的 Polyspace 命令,然后创建 MathWorks® 服务请求

  • 运行 curl 命令时连接器不可访问。

  • 连接器可访问但命令仍运行失败。

    .

要启用调试模式,请执行以下操作:

  1. 打开文本编辑器,创建名为 connector.properties 的文件,并在该文件中保存以下代码行:

    application.debug=true

  2. 将该文件复制到您的 Polyspace 预设项文件夹,例如:

    • Windows® - %Appdata%\MathWorks\MATLAB\R2026a\Polyspace

    • Linux - ~/.matlab/R2026a/Polyspace

  3. 重新运行之前失败的 Polyspace 命令。运行命令后,连接器会在 Polyspace 预设项文件夹中创建一个名为 dmp_ 的转储文件

重新运行 Polyspace 命令后,连接器会在 Polyspace 预设项文件夹中创建一个名为 dmp_$number@$hostname.txt 的转储文件,例如 dmp_12345@workstation.example.txt。将此文件附加到您的服务请求中。

预设项文件夹可能包含多个转储文件,请确保选择最新创建的转储文件。