由于某种原因,PAX杀了我的进程。 (PAX用SIGKILL终止我的流程)

时间:2013-11-28 14:24:01

标签: linux gcc sigkill pax

我不知道为什么PAX总会杀死我的进程。该平台是powerpc,OS是Linux。从内核日志中,我可以看到如下:

  

PAX:从147.128.23.67:执行尝试:   100a3000-10175000 100a3000 PAX:终止任务:   / mnt / ecim / pau6000agent / bin / agent_z(agent_z):1744,uid / euid:0/0,PC:   100a318c,SP:bbc85aa0 PAX:PC上的字节数:396001fc 4bfffbdc 39600200   4bfffbd4 39600204 gpr_get:部分寄存器集

谷歌告诉我尝试使用'paxctl -m ./agent_z'或'paxctl -z ./agent_z',但这些都没有帮助。实际上,'agent_z'没有任何PAX标志。所以我真的很困惑为什么PAX总是会杀死'agent_z'

  

文件./agent_z没有PT_PAX_FLAGS程序标题,请尝试

     

转换root @ QorIQ:/ mnt / ecim / pau6000agent / bin> paxctl -v ./agent_z   PaX控制v0.5版权所有2004,2005,2006,2007 PaX Team    文件./agent_z没有PT_PAX_FLAGS   程序头,尝试转换

以下是我正在使用的gcc的信息。而且,正如其他人所建议的那样,我也尝试在编译时添加-O1 / -O2 / -O3标志,但它们都不起作用。

  

使用内置规格。目标:powerpc-wrs-linux-gnu配置:   /scratch/jmyers/wrs/4.4a/src/gcc-4.4-wrs/configure   --build = i686-pc-linux-gnu --host = i686-pc-linux-gnu --target = powerpc-wrs-linux-gnu --enable-threads --disable-libmudflap --disable-libssp - disable-libstdcxx-pch --with-long-double-128 --enable-targets = all --enable-secureplt --with-cpu-32 = 603 --with-cpu-64 = 970 --with-gnu- as --with-gnu-ld --with-specs ='%{save-temps:-fverbose-asm}%{O2:%{!fno-remove-local-statics:-fremove-local-statics}}   {%的O *:%{Ø| O0 | 01 | O2 |操作系统:;:%!{FNO-删除本地-静:   -fremove-local-statics}}}' - enable-languages = c,c ++ --enable-shared --disable-lto --enable-symvers = gnu --enable -__ cxa_atexit --with-pkgversion ='Wind River Linux Sourcery G ++ 4.4a-341'--with-bugurl=support@windriver.com--disable-nls --prefix = / opt / windriver / wrlinux / ppc --with-sysroot = / opt / windriver / wrlinux / ppc / powerpc-wrs-linux-gnu / libc --with-build-sysroot = / scratch / jmyers / wrs / 4.4a / power / install / powerpc-wrs-linux-gnu / libc   --with-GMP = /刮伤/ jmyers / WRS / 4.4A /功率/ OBJ /主机库-4.4A-341-PowerPC的WRS-Linux的GNU-i686的-PC-Linux的GNU / USR   --with-MPFR = /刮伤/ jmyers / WRS / 4.4A /功率/ OBJ /主机库-4.4A-341-PowerPC的WRS-Linux的GNU-i686的-PC-Linux的GNU / USR   --with-PPL = /刮伤/ jmyers / WRS / 4.4A /功率/ OBJ /主机库-4.4A-341-PowerPC的WRS-Linux的GNU-i686的-PC-Linux的GNU / USR   --with-host-libstdcxx =' - static-libgcc -Wl,-Bstatic,-lstdc ++, - Bdynamic -lm' - with-cloog = / scratch / jmyers / wrs / 4.4a / power / obj / host-libs -4.4a-341-PowerPC的WRS-Linux的GNU-i686的-PC-Linux的GNU / USR   --with-= libelf的/刮伤/ jmyers / WRS / 4.4A /功率/ OBJ /主机库-4.4A-341-PowerPC的WRS-Linux的GNU-i686的-PC-Linux的GNU / USR   --disable-libgomp --with-license = / scratch / jmyers / wrs / 4.4a / power / obj / host-libs-4.4a-341-powerpc-wrs-linux-gnu-i686-pc-linux-gnu / USR   --with-csl-license-version = 20110917 --with-csl-license-feature = gcc_Power_Wind_River_Linux --enable-poison-system-directories --with-debug-prefix-map ='/ scratch / jmyers / wrs / 4.4一个/功率/安装= /选择/风河/ wrlinux / PPC         /scratch/jmyers/wrs/4.4a/src/gcc-4.4-wrs=/opt/windriver/wrlinux/ppc/powerpc-wrs-linux-gnu/src/gcc   /scratch/jmyers/wrs/4.4a/power/obj/gcc-4.4a-341-powerpc-wrs-linux-gnu-i686-pc-linux-gnu=/opt/windriver/wrlinux/ppc/powerpc-wrs- Linux的GNU / SRC /生成/ GCC”   --with-集结时间的工具= /刮/ jmyers / WRS / 4.4A /功率/安装/ PowerPC的WRS-Linux的GNU /箱   --with-集结时间的工具= /刮/ jmyers / WRS / 4.4A /功率/安装/ PowerPC的WRS-Linux的GNU /箱   线程模型:posix gcc版本4.4.1(Wind River Linux Sourcery G ++   4.4A-341)

提前致谢,非常感谢您的回复。

最诚挚的问候, Junzhao Cai

1 个答案:

答案 0 :(得分:0)

这两个命令可以避免PaX的杀戮。

paxctl -c ./agent_z
paxctl -pemrxs ./agent_z

这可能是一种解决方法,我正在寻找代码中的根本原因。