Files
cbb 79633a2b0f feat(motor): 自适应 PDO 窗口与通道活动指示,新增原生 SOEM 时序诊断
后端 PDO 循环改为按在线槽收缩状态窗口,稀疏总线下单槽每周期都能刷新,
并补上尾部槽的发现扫描游标;新增自旋节拍源(阈值/显式覆盖)、P 核识别
与线程级钉核,自旋期间释放 GIL 以免 HTTP 线程被饿死;启动时先关停旧实例,
避免两个进程争用 Npcap 适配器。

记录每拍完整时间线、GC stop-the-world 事件与网格跳拍数,经 /api/motor/dbg
导出用于归因固定频率的超时;配
2026-09-05 01:20:14 +08:00

29 lines
938 B
Python

"""exports2def.py — 把 dumpbin /exports 的输出转成 .def(给 lib.exe 生成导入库用)。
用法: python exports2def.py <exports.txt> <out.def> <LIBRARY名>
"""
import re
import sys
def main():
src, dst, libname = sys.argv[1], sys.argv[2], sys.argv[3]
names = set()
pat = re.compile(r"^\s+\d+\s+[0-9A-Fa-f]+\s+[0-9A-Fa-f]+\s+(\S+)")
with open(src, encoding="utf-8", errors="ignore") as f:
for line in f:
m = pat.match(line)
if m:
names.add(m.group(1))
if not names:
print("exports2def: 没解析出任何导出名", file=sys.stderr)
return 1
with open(dst, "w", encoding="ascii", newline="\r\n") as f:
f.write(f"LIBRARY {libname}\nEXPORTS\n")
for n in sorted(names):
f.write(n + "\n")
print(f"exports2def: {len(names)} 个导出 → {dst}")
return 0
if __name__ == "__main__":
sys.exit(main())