gpt4 book ai didi

python - 从 strace 输出中提取唯一的系统调用名称(通过正则表达式?)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:34 26 4
gpt4 key购买 nike

我有一个由 strace 生成的文件其中包含所有系统调用。现在我想获取所有系统调用的名称。因此,假设我将 mprotect 列出 4 次,我只需要列出 1 次,即我只需要列出唯一的系统调用。

想到的一种方法是使用python或任何其他支持解析正则表达式的语言使用正则表达式来首先查看所有系统调用,然后消除重复项。为此,我首先尝试使用 notepad++ 的搜索功能来测试我的正则表达式。我想匹配这样的任何东西,blah(。为此,我设计了以下正则表达式

[a-zA-Z_](

但是记事本一无所获。你认为正确的正则表达式是什么?

最佳答案

为什么您认为为此需要正则表达式? strace 的输出是一系列行,每行以

开头
<c_identifier>(

和 C 标识符不能包含 (,因此您可以只取 ( 之前的部分来获取系统调用的名称。在 Python 中,这一行计算一组不同的系统调用:

syscalls = set(ln.split('(', 1)[0] for ln in strace_output)

(如果您更喜欢在 shell 中工作而不是在 Python 中,您也可以在 Awk 的一行中完成此操作。)

关于python - 从 strace 输出中提取唯一的系统调用名称(通过正则表达式?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10584702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com