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

如何获取Cython函数neumaier_sum对应的汇编代码?

提取Cython函数对应汇编代码的方法

方法1:用objdump精准过滤函数

  1. 先编译Cython代码:
cython -3 your_file.pyx && gcc -c -fPIC -I/usr/include/python3.x your_file.c

(把python3.x换成你的实际Python版本,比如python3.10)
2. 找到编译后函数的真实名称:

nm your_file.o | grep neumaier

会得到类似__pyx_f_8your_file_neumaier_sum的修饰后函数名
3. 用objdump过滤该函数的汇编:

objdump -d your_file.o | sed -n '/__pyx_f_8your_file_neumaier_sum:/,/^$/p'

这个命令会只输出从目标函数开始到下一个空行的汇编代码,刚好覆盖整个函数。

方法2:单独提取函数编译生成汇编

  1. 生成Cython对应的C代码:
cython -3 your_file.pyx
  1. 打开生成的your_file.c,找到__pyx_f_8your_file_neumaier_sum开头的完整函数,把它复制到临时文件temp_func.c,同时从原C文件顶部复制必要的头文件(比如#include "Python.h"、#include "numpy/arrayobject.h")
  2. 编译临时文件生成汇编:
gcc -S -O2 temp_func.c -o temp_func.s

打开temp_func.s就是仅目标函数的汇编。

方法3:用gcc分段编译+objcopy提取

  1. 编译时让每个函数单独占一个段:
cython -3 your_file.pyx && gcc -c -fPIC -I/usr/include/python3.x -ffunction-sections your_file.c
  1. 提取目标函数的段到单独的目标文件:
objcopy --only-section=.text.__pyx_f_8your_file_neumaier_sum your_file.o neumaier_only.o
  1. 反汇编这个小文件:
objdump -d neumaier_only.o

输出的就是纯目标函数的汇编代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 09:10:08