源码在编译时-源代码编译和调试.ppt页次1/40第5章 回顾源代码编译与调试源代码编译与调试预览检测哪个是gcc,哪个是gdb页4/40本章的目标是使用gcc编译程序

,使用gdb调试有问题的程序第5/40章结构Gcc源代码编译调试源代码编译与调试Unix/LinuxUnix/Linux的起源和发展Linux在企业中的Linux应用软件的应用企业中的LinuxLinux安装方法Linux安装形式系统安装过程系统安装过程Linux的图形界面LinuxGdbGdbUnix/Linux版本Unix/Linux版本的图形界面什么是GCC?GCC曾经是GNUCompiler。GCC 今天的 GNUCompilerCollection.Language: gcc, gcj “Tools: cpp, ld, runtimelibrary” 平台: X86-linux, sparc-sun-solaris, arm, MinGW, vxwork“ 谁写了GCCRichard Stallman是GCC的原作者。今天,自由软件基金会(FSF)指定GCC指导委员会为GCC的官方维护者。为什么GCCGCC是便携式的。海湾合作委员会是免费的。你们都使用 GCC,这使得很容易发现 .gccgcc 编译器的问题。

事实上,gcc可以编译多种语言:C,C++ObjectC等。使用 gcc 命令,您可以同时编译和加入源文件,并使用 gcc 编译、连接和生成可执行文件。GCC 使程序员能够灵活地控制编译过程。编译过程通常可以分为以下四个阶段,每个阶段调用不同的工具来处理 gcc 预处理链接编译汇编的基本句型 gcc[options][文件名] 说明:gcc前面可以有多个编译选项,可以同时进行多个编译操作。许多 gcc 选项包含多个字符。因此,必须为每个选项指定自己的连字符。例如,以下两个命令是不同的: gcctest1.cgcc-cgtest1.c 当你编译一个没有任何选项的程序时,GCC 将完善(假设编译成功)一个名为 a.o. gccgcc 的可执行文件,例如,有一个程序: hello.c(1) preprocessinggcchello.i使用命令查看 ls,get: hello.i (view hello.i) (2) 编译 gcchello.s(3) 汇编 gcchello.o(4) join gcchello.oxxxxx(5) execute./xxxxgcc 还有两个特别常用的库依赖项选项: DIR 可以将 DIR 目录添加到头文件的搜索路径中。因为 Linux 中的头文件默认放在 “/usr/include/” 下源码在编译时,当用户想在其他位置添加头文件时,可以使用 “-idir” 选项指定,例如 “/root/xxxx/” 中有两个文件 /*pan.c*/#includemy.hmain()you!!!n“); returngcc例如,在 ”/root/xxxx/“ 中有两个文件 /*my.h*/#includestdio.h源码在编译时,因此您可以在 gcc 命令行中添加 ”-I“ 选项,并在 gccpan.cpan 之后运行程序,并输出 result./pangcc 警告选项,例如: 有以下程序段(程序名称为 warning.c) #includestdio.hvoidmain()longlongtmpbadcode! n”); 返回选项 -ANSI, -pedantic, -wall, 编译器警告选项,分别输入 gcc-ansiwarning.cwarning,它不会检测数据类型 “longlong” 中的错误,gcc-pedanticwarning.cwarning,它检测 “longlong” 这个无效数据类型 gcc-wallwarning.cwarning 选项会找出未使用的变量 tmp,但没有找到无效数据类型的错误优化选项,这使得 GCC 以牺牲调试时间为代价形成更小更快的可执行文件。

此选项中最典型的是 -O 和 -O2 选项。 -O0 未优化。 -O1 或 O 选项:告诉 GCC 对源代码进行基本优化。在大多数情况下,这种优化使程序执行得更快。-O2 选项:告诉 GCC 尽可能小、尽可能快地形成代码。-O2 选项将使编译速率比使用 -O 时慢。但是,生成的代码将执行得更快。-O3 选项:比 -O2 进一步优化,包括内联功能。6.2Gdb 调试器 GDB 是由 GNU 开源组织 6.2Gdb 发布的功能强大的 UNIX 程序调试工具 GDB 的作用主要完成以下四个功能: 2. 正在调试的程序可以在您指定的断点处移动。(断点可以是条件表达式)4. 动态更改程序的执行环境。6.2.1Gdb 使用进程查看文件设置断点查看断点运行代码查看变量值步骤恢复程序运行 6.2.2Gdb基本命令 1、工作环境相关命令setargsshowargspathdirshowpathssetenVironmentvar[=value]showenVironment[var] cddirshellcommand6.2.2Gdb基本命令 2、设置断点和恢复命令 6.2.2Gdb 基本命令 3、Gdb 源代码查看相关命令 文件加载器 dirdirshowdirectoryIfoline6.2.2Gdb 基本命令 4、gdb 视图运行数据相关命令显示表达式6.2.2GdbBasic CommandGdbChange Run ParametersRelated Commandsetgdb1/2Source Program test.c#includestdio.hintsum(intintmain()sum(50);for(i=1;i=50;i++)printf(“Thesumgdb1/2intsum(intprintf(” Thesumgdb2/2 首先用 gcc 编译,生成 gdb 可加载的可执行文件 gccteststart gdb for debuggtestgdb 可以看到 gdb 的版本号,使用库文件等信息gdb2/2(1)查看文件输入“(列表的缩写)在 gdb 下, 每次显示 10 行 (2)设置断点,在 gdb 下输入“(断点的简写) (3) 查看断点在 gdb 下输入 (4) 运行代码输入”(断点的缩写) gdb2/2 (5) 查看变量值,在 gdb 下输入 $1=0$2=13451844 (6) 单步使用命令 “” 不会单步进入函数 (7) 恢复程序运行,在 gdb 下输入, 停止 GDB2/ 2 断点设置 (1) 行断点 (2) 函数断点 (3) 条件断点 函数断点, 命令: “条件断点, 命令:”“ 运行程序使用:”gdb2/2Gdb 更改运行参数 相关命令 gdb 可以更改运行时的参数,并使变量根据用户当前输入的值继续运行 键入命令: “set 变量,例如: type command:”typed command:“setvargdb2/ 2Gdb (1) 请务必在 gcc 编译选项中添加一个选项,以便仅在代码处于”运行暂停“状态时查看变量值 (3) 设置断点后,程序在指定行之前停止本章总结 本章介绍了 Gcc 编译器和 Gdb 调试器的用法, 选项很多,但常用的并不多 页37/40 实验实验1:使用GCC编译器实验2:使用Gdb调试有问题的程序 页次38/40 实验1注意事项 提示1:页39/ 40 实验2注意事项

源码在编译时-源代码编译和调试.ppt页次1/40第5章 回顾源代码编译与调试源代码编译与调试预览检测哪个是gcc,哪个是gdb页4/40本章的目标是使用gcc编译程序

反编译Apk得到Java源代码工具下载:需要dex2jar和JD-GUI。 dex2jar 下载地址:dex2jar-0.0.7-SNAPSHOT.zipJD-GUI 下载地址:windows 版 JD-GUI:gui.zipLinux 版 JD-GUI:gui-0.3.2.linux.i686.tar.gz 步骤: 1、首先找到Android软件安装包中的classes.dex,将.apk文件重命名为.zip,然后解压得到classes。 dex 文件,由java 文件编译后,再通过dx 工具打包,所以现在我们使用上面提到的2 个工具反向导入java 源文件 2. 将classes.dex 复制到dex2jar.bat 所在目录。 在命令行模式下,找到dex2jar.bat所在目录,运行dex2jar.batclasses.dexapk源码编译,生成classes.dex.dex2jar.jar3。 运行JD-GUI工具(红色,不需要安装)打开里面的jar文件。 看源码-------------------------------------------------------- --- ------------------------------- 2.反编译apk生成程序的源码和图片、XML配置、语言资源和其他文件。 转载自:工具下载:从android-apktool/download获取,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip都必须下载。 步骤:(参考gde.com/Article/608.Html) 1、解压下载的两个文件包aapt.exe和apktool.bat.2。 打开命令窗口(开始>运行,输入cmd,回车)进入apktool.bat文件夹。 输入:apktooldC:***.apkC:***文件夹(命令行解释:apktoold要反编译的文件的输出文件夹)非常注意:你要反编译的文件一定要放在C盘根目录下驱动器apk源码编译,3.打开C:***文件夹即可获取我校的各种资源。 (所有需要的文件已经打包在附件中)

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 源码在编译时-源代码编译和调试.ppt页次1/40第5章 回顾源代码编译与调试源代码编译与调试预览检测哪个是gcc,哪个是gdb页4/40本章的目标是使用gcc编译程序 https://www.wkzy.net/game/129362.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务