当前位置:  技术问答>linux和unix

gcc中有提高运算速度的选项吗?

    来源: 互联网  发布时间:2014-12-31

    本文导语:  请高手指教 | gcc常用的编译选项对代码的影响  原始文档:http://www.xfocus.net/article_view.php?id=320  原创:alert7(alert7)  来源:http://xfocus.org/    gcc常用的编译选项对代码的影响  by alert7  2001...

请高手指教

|
gcc常用的编译选项对代码的影响 
原始文档:http://www.xfocus.net/article_view.php?id=320 
原创:alert7(alert7) 
来源:http://xfocus.org/ 
 
gcc常用的编译选项对代码的影响 

by alert7 
2001-12-21 

测试环境 redhat 6.2 

★ 前言 

本文讨论gcc的一些常用编译选项对代码的影响。当然代码变了, 
它的内存布局也就会变了,随之exploit也就要做相应的变动。 
gcc的编译选项实在太多,本文检了几个最常用的选项。 


★ 演示程序 

[alert7@redhat62 alert7]$ cat > test.c 
#include  
void hi(void) 

printf("hi"); 


int main(int argc, char *argv[]) 

        hi(); 
        return 0; 



★ 一般情况 

[alert7@redhat62 alert7]$ gcc -o test test.c 
[alert7@redhat62 alert7]$ wc -c test 
  11773 test 
[alert7@redhat62 alert7]$ gdb -q test 
(gdb) disass main 
Dump of assembler code for function main: 
0x80483e4 :       push   %ebp 
0x80483e5 :     mov    %esp,%ebp 
0x80483e7 :     call   0x80483d0  
0x80483ec :     xor    %eax,%eax 
0x80483ee :    jmp    0x80483f0  
0x80483f0 :    leave 
0x80483f1 :    ret 
.... 
End of assembler dump. 
(gdb) disass hi 
Dump of assembler code for function hi: 
0x80483d0 : push   %ebp 
0x80483d1 :       mov    %esp,%ebp 
0x80483d3 :       push   $0x8048450 
0x80483d8 :       call   0x8048308  
0x80483dd :      add    $0x4,%esp 
0x80483e0 :      leave 
0x80483e1 :      ret 
0x80483e2 :      mov    %esi,%esi 
End of assembler dump. 

来看看部分的内存映象 
                   (内存高址) 
                              +--------+ 
                              |bffffbc4| argv的地址(即argv[0]的地址) 
                   0xbffffb84 +--------+ 
                              |00000001| argc的值 
                   0xbffffb80 +--------+ 
                              |400309cb|main的返回地址 
                   0xbffffb7c +--------+ 

    
 
 

您可能感兴趣的文章:

  • arm-elf-gcc 编译成功,但浮点运算结果是错的
  • 请教一个GCC编译选项
  • 求助:当用 gcc 编译时没,加上优化选项 -02 ,可是提示是 gcc: unrecognized option `-02'
  • 关于gcc优化选项的问题。
  • 询问gcc的一个编译选项
  • GCC的O1、O2、O3选项究竟优化了什么?
  • 请教gcc中如何设置宏选项
  • 求一个GCC编译选项
  • 关于gcc的编译选项的问题?
  • 有关gcc的链接选项
  • gcc/g++中可不可以在编译选项中预定义宏
  • 关于gcc编译选项的一个问题.
  • 关于gcc的-D编译选项?
  • arm-linux-gcc不能识别-02选项?
  • 晕了,solaris系统下,使用gcc -g选项编译出的程序,怎么没有调试信息
  • 讨教gcc编译选项的问题 -lifisam -lisam -lisamnls
  • 请大虾支招啊-gcc 编译选项问题 以及 makefile的问题
  • 在用gcc编译c程序时,打开调试选项是何参数?急急!!!
  • 请教一个GCC编译选项 iis7站长之家
  • gcc的编译选项中 -I.和-I./; -L.和-L./ 是同一个意思吗?
  • 如何判断GCC或者G++ 编译的时候带了 -g选项?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何使gcc编译的速度更快一些?
  • Linux下GCC内置原子操作函数(多线程资源访问)介绍
  • 使用popen来执行gcc命令,如何根据读出来的gcc的输出来判断gcc是否编译成功?
  • 命令:mips_fp_le-gcc,mipsel-gcc 是什么意思?跟一般的gcc有什么区别?
  • 怎样升级我的GCC呀,我用的RH7.2,GCC 2.96 ,我从网上下载了一个gcc-3.2.3.tar.gz
  • arm-elf-gcc 和 arm-linux-gcc有什么区别?arm-elf-gcc里的elf代表什么?
  • gcc-ccore、avr-gcc及arm-gcc的区别
  • gcc在哪里?bash:gcc:command not found
  • 如何删掉GCC3.0(我需要GCC2.0-----)
  • Windows版GCC TDM-GCC
  • 急问:如何卸掉gcc 3.2庄gcc 2.96
  • 有人遇到过吗,在安装GCC时提示,"checking gcc ...no "
  • gcc编译时出错,gcc: installation problem, cannot exec `as': 没有那个文件或目录!!!求助呀呀!!!!!
  • GCC无法安装的问题,希望有人帮我( Debian 4.04ra无法安装GCC)
  • Solaris8,安装了iconv,gcc和gcclib,然后用gcc编译c程序出错。
  • 一套未安装gcc的Linux中安装gcc rpm包时时出现错误
  • gcc与arm-linux-gcc编译的问题???
  • 下了一个GCC3.0包用tar xjfv gcc-3.0.tar.bz2解压后出现一堆文
  • 请问如何安装rpm格式的gcc如gcc-3.2.2-5.src.rpm,谢谢
  • arm-linux-gcc交叉编译出错,但gcc编译没错,什么原因呢???
  • 在redhat9下,如何将gcc3.x改为gcc2.x?
  • linux x86_64下由于拷贝gcc的lib目录导致gcc编译器出错


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3