在strace中设置螺纹区域
在程序上使用strace:strace在Debian和CentOS中输出相同的提取输出,但set_thread_区域除外。(两个Linux上的程序版本完全相同。) 为什么它们不同?有没有办法使两个Linux上的输出相同?这个差异可以用C语言编程吗?Debian/CentOS中是否缺少某些软件包 set_thread_area({entry_number:-1 -> 6, base_addr:0xb7fb16c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 open("/dev/urandom", O_RDONLY) = 3 read(3, "\242\177)", 3) = 3 设置线程区域({entry_number:-1->6,base_addr:0xb7fb16c0,limit:1048575,seg_32位:1,contents:0,read_exec_only:0,limit_in_pages:1,seg_not_present:0,useable:1})=0 打开(“/dev/uradom”,O_RDONLY)=3 读(3,“\242\177)”,3)=3 设置螺纹面积(0xff9db33c)=0 编辑在strace中设置螺纹区域,c,linux,binary,strace,C,Linux,Binary,Strace,在程序上使用strace:strace在Debian和CentOS中输出相同的提取输出,但set_thread_区域除外。(两个Linux上的程序版本完全相同。) 为什么它们不同?有没有办法使两个Linux上的输出相同?这个差异可以用C语言编程吗?Debian/CentOS中是否缺少某些软件包 set_thread_area({entry_number:-1 -> 6, base_addr:0xb7fb16c0, limit:1048575, seg_32bit:1, contents:0, r
第一:CentOS i686
第二:使用-m32编译的Debian x64,您是否询问地址不同的原因,或者为什么
strace
的输出格式不同?如果是后者,我怀疑您正在处理两个不同版本的strace
,其中一个可能已经过时。然而,这一点看起来也很奇怪:
set_thread_area(0xff9db33c) = 0
地址
0xff9db33c
绝对不是i386上的有效用户空间地址。您的一个系统可能是x86_64吗?这也解释了不同的格式,因为i386上的set\u thread\u area
采用指向struct ldt\u desc
的指针,而x86\u 64上只采用实际指针值加载到线程寄存器中。您是否询问地址不同的原因,或者为什么strace
的输出格式不同?如果是后者,我怀疑您正在处理两个不同版本的strace
,其中一个可能已经过时。然而,这一点看起来也很奇怪:
set_thread_area(0xff9db33c) = 0
地址
0xff9db33c
绝对不是i386上的有效用户空间地址。您的一个系统可能是x86_64吗?这也解释了不同的格式,因为i386上的set\u thread\u area
采用指向struct ldt\u desc
的指针,而x86\u 64上只采用实际指针值加载到线程寄存器中。比较strace版本。并提供两个系统的更多详细信息,如cpu类型..比较strace版本。并提供有关这两个系统的更多详细信息,如cpu类型..我询问的是输出格式。为什么CentOS有urandom而Debian没有?嗯,urandom
不属于set\u thread\u区域
。这是另一回事。它出现在跟踪中的哪个点?我怀疑它设置了一个随机的金丝雀来进行堆栈破坏保护。我正在询问输出格式。为什么CentOS有urandom而Debian没有?嗯,urandom
不属于set\u thread\u区域
。这是另一回事。它出现在跟踪中的哪个点?我怀疑它设置了一个随机的金丝雀来保护堆叠。