当前位置: 首页 > news >正文

帝国cms手机网站简述跨境电商网站的平台建设

帝国cms手机网站,简述跨境电商网站的平台建设,si设计,服务器域名解析大纲#xff1a;命令#xff0c;vim#xff0c;gcc#xff0c;编译工具#xff0c;生成代码#xff0c;调试#xff0c;库makefile#xff0c;系统编程 文件系统#xff1a;文件属性#xff0c;文件内容#xff0c;万物皆文件#xff08;不在内存中的是文件#…大纲命令vimgcc编译工具生成代码调试库makefile系统编程 文件系统文件属性文件内容万物皆文件不在内存中的是文件鼠标键盘耳机都可以看作键盘IO多路复用即时聊天进程特点怎么分配资源多进程创建和管理进程间通信管道共享内存信号量消息队列信号线程多线程互斥和同步网络网络概念编程epoll服务器结构进程池和线程池sql语句最终实现一个网盘。 1、gcc 预处理处理#开头的文件 写代码一般就编译错误语法错误或者链接错误名字冲突 2、汇编ATT语言汇编的语言有很多种ATT语言是其中一种针对x86机器 编译后所有的名字都转换成内存的地址所有的类型的信息都变成长度信息 pushq    push表示压栈q表示quadra4表示四倍16bit就是64bitx86的8086是16bit一个字长每次读取内存的单位 %rbp百分号说明是一个寄存器register  base  pointer表示基地址  movq  表示拷贝 subq    sub表示减 rsp减去48 q表示四个字长一个字长16位为两个字节 xorl  xor表示异或L表示两个字长32位$表示赋值 每四个字节为单位 变量的名字和类型会被转化为内存的位置和内存的大小 leaqlea表示load effective address  取地址 call  调用函数 存储程序的概念 在需要调用mian意外的函数时先call这个函数然后把用一个占位符占位等链接的时候再进入函数 新压一个栈来 参数传递caller的栈帧到寄存器到caller的栈帧值传递的过程 字符串字面常量存于rdi区只读 esi和rdi是为了调用printf fun  return 后回到main jmp 指针移动for  循环循环的底层用goto实现 cmpl比较 jlejump less equal小于等于就跳转编译器会优化部分代码等价替换 je  相等就跳转 call  ——stack——chk——failPLT  提示栈损毁如果内存发生修改就证明代码错误所以引出报错指针内存乱指等原因 --------------------汇编总结------------ push (压栈) pop(出栈) call调用函数 ret函数返回 mov (拷贝)  add(加)  sub减lea取地址 xor异或 jmp je jle    (跳转) q(8byte) l(4byte) 所有变量数组*p 编译完在汇编中只剩下了地址长度 循环 forwhile和goto本质一样 函数调用 栈帧独立传递参数值传递 AS命令生成汇编文件 可移植GUN汇编 nm命令列出文件中的符号信息 常见符号类型A该符号的值在今后的链接中不再改变 U该符号未定义过需要自其他对象文件中链接出来 T该符号在代码段中通常是全局非静态函数 gcc -c  (.c 文件直接生成.o) objdump (反编译) 反编译汇编文件可以把.o(机器语言)反编译成.s(汇编语言) 以上左侧二进制序列对应右侧汇编代码 链接参考书《linker loader》《程序员自我修养》 把调用函数的名字换成地址 ld 命令链接文件 或者使用gcc命令间接调用链接 函数 / 全局变量 定义0次/超过2次  缺失main函数 报错信息有ld错误链接错误 执行可执行程序 ./ 文件名   防止与文件名冲突 库文件特殊的.o文件 静态库和动态库 静态库打包到产品中 动态库运行时才加载到产品中 ldd 查看文件依赖库 -static 选项让文件链接依赖静态库默认动态库 静态编译占用内存较大 生成静态库 ar命令创建、修改库、从库中提出单个模块 1、通过gcc -c add.c -o add.o 生成目标文件 2、打包成静态库文件 ar crsv libadd.a add.o 3、移动到系统搜索目录  /usr/lib sudo cp libadd.a /usr/lib 4、在链接文件时加上  -ladd 静态库链接成功后生成的可执行文件不会因为原静态库的丢失而受影响 生成动态库 1、编译成目标文件 动态库加载于栈区和堆区之间该区域命名为共享库映射区该区不能生成绝对地址。 这样生成的代码叫位置无关代码 -fpic 编译时加上这个选项即可完成 gcc add.c -o add.o -fpic   (编译) 2、打包 gcc -shared add.o -o libadd.so 3、移动到系统库目录 sudo cp libadd.so /usr/lib 4、链接加上-ladd gcc test.o -o test -ladd ldd 文件名查看动态库的链接情况 删除libadd.so后可执行文件失效重新copy后可以运行修改链接库文件后不用链接即可在线更新 更新出bug后进行回滚 软连接符号链接类似于windows的快捷方式 用版本号来区别更新前后的文件软连接来链接需要的文件 将动态库文件libadd.so文件移动到libadd.so.0.1后执行test显示找不到库文件 ln -s命令可以创建软链接 创建软连接成功后用ls -al 可以查看 链接创建后可以执行文件 gcc的其他选项 -D 选项 预处理时需要用到ifdef 为了避免重复改代码造成的风险可以注释掉需要定义的宏在预处理阶段加入-D命令使预处理生效注释掉的宏。 -I 选项大写i 增加一个搜索路径防止重复修改文件目录导致在源代码里面多次修改导致不可预测的风险。利用改变命令的方式来改变搜索路径。 -O编译优化结果不变指令数量变少执行速度变快编译器作者在不影响结果的情况下修改指令顺序和数据存储位置 可能会对调试影响单步调试编译优化分级来减小对代码调试的影响 -O0      不优化 -O1        发布产品 -O2        开源软件 -O3       激进优化方案 优化越深 优化越深c于汇编的对应就乱了。 编译警告 Linux中不能出现警告。 警告实例在源代码中定义了 i 但是没有用到 gdb--调试工具 不能开优化该工具针对c代码的一行  -O0 补充调试信息  -g 以上两点要在编译时加上。 使用-O0和-g后生成可执行程序中包含了调试信息 gbd 文件名可执行文件名进入gdb调式界面 list 每十行显示源代码list后面加行号可从行号显示l 和list一样的效果 list 加文件名 加行号 函数名 run  / r运行程序 break /b打断点加文件名加行号 加函数在函数定义入口打断点 continue / c  运行到下一个断点 step / s 单步调试  vs的f11进入函数第一行逐步进入 next / n    vs的f10 单步调用但是跳过函数逐步越过 finish    直接运行这个函数调用完为止跳出本次函数调用 info break  /i b查看目前的所有断点 delete 加编号   删除断点不加编号就删除全部 进入循环断点时gdb会进入这个断点循环次数所以需要用到忽略这个断点若干次 多次命中循环体中的断点 ignore忽略断点若干次测试循环结构 使用i b 查看断点编号再用ignore 加断点编号加次数设置忽略次数 已经忽略三次循环的效果 在gdb中查看监视 print  / p p为指针内存空间以指针大小偏移int为4byte所以地址偏移四字节进四。内存的一个字节对应一个地址 自动监视变量的值display 加变量名 每查看一行就自动监视输出一次 删除display 先info display显示display的编号再undisplay 加编号删除 help 加命令 显示手册 X 在gdb中去查看内存 FMT 数字  字母1 字母2 数字查看多少单位 字母1O八进制x十六进制d十进制 u无符号十进制t二进制 字母2每个单位的大小 b1bytehhalfword,2bytew(word,4byte) g (giant , 8 bytes) 例子arr数组3个字节 x/3tw arr 3个单位 二进制的形式4个字节 4个单位二进制4字节 检查崩溃的程序 core文件-----记录程序崩溃的时刻内存的堆栈情况。 指针在解引用和初始化之前不能赋值不然会造成野指针。 错误实例 段错误Segmentation fault core dumped core文件储存操作系统会限制core文件的大小 ulimit -a 查看操作系统限制大小 ulimit -c unlimited   (设置core文件 不限制大小) 该指令不是永久生效只能影响一个终端 修改以下文件来修改core的大小限制 切换到root用户 用echo  core  /proc/sys/kernel/core_pattern 往core_pattern 写入core 之后core文件获得不限制大小的权限即可生成core文件 gdb 可执行文件名 core该命令用于查看core文件内容 获得报错信息 bt命令用于调用堆栈的情况 1、编译时加上 -g -O0 2、ulimit -c unlimited 3、执行程序 4、gdb  可执行程序  core 栈溢出导致的崩溃 命令行参数 gdb 用gdb启动 set args how are you设置追加参数 show args 展示追加的参数
http://www.pierceye.com/news/910671/

相关文章:

  • 网站域名区别吗模板和网站是一体的吗
  • 百度网盟推广怎么选择投放网站抖音seo代理
  • 电商wordpress网站优化百度
  • phpcms v9 网站搬家南通网站设计专家
  • 延安网站建设推广黄骅市网站建设价格
  • 做网站怎么选关键词网站管理强化阵地建设
  • 网站制作是那个cms 导航网站
  • 网站标题优化技巧房产信息网上自助查询系统
  • wordpress电影网教程合肥网站快速排名优化
  • 药房网站模板网站中英文要怎么做
  • 做影视网站用什么网盘最好wordpress投资主题
  • 潍坊市建设工程质量安全监督站网站网站建设的毕业设计
  • 建筑网站夜里几点维护怎么开发软件app软件
  • 厦门人才网官方网站wordpress 晒单
  • 网站不收录是什么原因网站建设与网页设计试卷
  • html网站模板资源2015做那个网站能致富
  • 设计导航精选最好的设计网站大全商城网站建设开发多少钱
  • 滨州j建设局网站投诉电话检察机关加强网站建设
  • 付费抽奖网站怎么做宁波网站推广营销
  • 单位的网站的建设个人网页制作策划书
  • 在中国可以做国外的域名网站吗企业网查询是什么
  • 网站开发在线浏览pdfwin7可以做网站吗
  • 手机上制作网站的软件巢湖有没有专门做网站的公司
  • 哪里有做企业网站的wordpress 主题类型
  • 什么是网站平台开发工具网站怎么做筛选功能的代码
  • 自建站 外贸军事内参消息
  • 化妆品网站建设实训总结坂田建设网站
  • 成都网站建设哪家专业嘉峪关市建设局网站
  • 企业策划 企业网站建设 品牌设计下载住小帮app看装修
  • wordpress文章内图片不显示不出来成都seo整站