Skip to content

获取测试点数据

当前状态:存在已知 Bug

该功能目前存在已知 Bug,在部分场景下可能无法正常获取数据,正在修复中(大概率修不好)。如遇问题请在 GitHub Issues 反馈。

功能介绍

当您的提交出现 WA(Wrong Answer)TLE(Time Limit Exceeded)RE(Runtime Error) 时,「获取测试点数据」功能可以让您直接查看该测试点的输入数据,在本地重现问题,大幅加速调试流程。

适用场景:

  • 代码在本地测试通过,但提交后 WA — 可以获取让你 WA 的具体输入
  • 程序 TLE — 获取输入后可在本地用更大数据集测试复杂度
  • 程序 RE — 获取输入后可在本地精确复现崩溃情况

使用方法

  1. 进入状态页面(提交记录列表),找到出现错误的那条提交
  2. 点击提交展开测试点详情
  3. 在出错的测试点行旁,点击「获取数据」按钮
  4. 稍等片刻,该测试点的输入数据将显示在弹出框中
  5. 复制输入数据到本地文件,在本地重现并调试

本地调试建议

获取到测试点数据后,推荐按以下流程调试:

bash
# 1. 将输入数据保存为文件
echo "(粘贴输入数据)" > input.txt

# 2. 编译代码(以 C++ 为例)
g++ -O2 -o solution solution.cpp

# 3. 用测试点数据运行
./solution < input.txt

# 4. 如需调试,加 -g 编译后用 gdb
g++ -g -o solution_debug solution.cpp
gdb ./solution_debug

配合「复制测试样例」使用

题面中的样例数据可通过 XMOJ-Script 的「复制测试样例」功能一键复制到剪贴板,快速填入本地测试文件。

已知问题

  • 部分比赛的测试点数据获取按钮显示但点击无响应 — 正在修复(大概率修不好)
  • 数据量较大时加载时间较长属于正常现象,请耐心等待

基于 GPLv3 许可证发布