You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CodeQL导出结果中显示完整字符串?

CodeQL导出CSV时完整显示字符串的解决办法

我在使用CodeQL查询时,通过a.getChild(1).toString()获取目标字符串(例如预期结果为PageLoadablePageWrapperQuery),但执行CSV导出命令后,字符串被截断为PageLo ... rQuery。相关查询语句和导出命令如下:

原查询语句

/**
 * @id custom
 * @kind problem
 * @problem.severity warning
 *
 */
import javascript

from ObjectExpr oe, Property p1, int i, AstNode a
where p1 = oe.getProperty(i) and
    p1.getName() = "fragment" and
    a = p1.getAChild().getAChild() and
    a.toString().indexOf("name") > -1
select a, a.getChild(1).toString()

原导出命令

codeql database analyze ~/test.com ./test.ql --format=csv --output=results.csv

解决办法

方法一:改用getText()获取完整文本

CodeQL的toString()方法默认会对较长字符串做截断处理,改用getText()方法可以直接获取AST节点的完整文本内容。修改后的查询语句如下:

/**
 * @id custom
 * @kind problem
 * @problem.severity warning
 *
 */
import javascript

from ObjectExpr oe, Property p1, int i, AstNode a
where p1 = oe.getProperty(i) and
    p1.getName() = "fragment" and
    a = p1.getAChild().getAChild() and
    a.toString().indexOf("name") > -1
select a, a.getChild(1).getText()

方法二:添加命令参数禁止截断

如果希望保留toString()方法,可以在导出命令中添加--no-truncation参数,强制关闭结果截断功能。修改后的命令如下:

codeql database analyze ~/test.com ./test.ql --format=csv --output=results.csv --no-truncation

内容的提问来源于stack exchange,提问作者Benassin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 22:14:55