摘要:
制作动态链接库 1.生成中间文件 gcc –c mylib.c –o mylib.o 2.生成动态链接库 gcc –shared –fPIC mylib.o –o libmylib.so -fPIC 使输出的对象模块是按照可重定位地址方式生成的。 -shared 指明产生动态链接库 3.将制作好的l 阅读全文
摘要:
外部函数 Linux应用程序设计中需要的外部函数主要由函数库和系统调用来提供。 两者区别 系统调用在Linux内核中位于核心态,而函数库是由工程师提供位于用户态 函数库分类 函数库按照链接方式可以分为静态函数库和动态函数库 存放位置 Linux应用程序使用的主要函数库均存放于/lib,/usr/li 阅读全文
摘要:
程序构成 代码段、数据段、BSS段(Block Started by Symbol,又叫:未初始化数据段)、堆(heap)和栈(stack)。这些部分构成了Linux应用程序的重要组成部分。 内存布局 1.从低地址到高地址分别为:代码段(0x8048000)、数据段、BSS段、堆、栈。 2.堆向高内 阅读全文
摘要:
Core Dump定义 Core Dump又叫核心转存。当程序在运行过程中发生异常,Linux系统可以把程序出错时的内存内容存储在一个core文件中,这个过程叫Core Dump。 Core Dump主要用来对付Segment fault错误。Linux应用程序在运行过程中,经常会遇到Segemt 阅读全文
摘要:
GDB是GNU发布的一款功能强大的调试工具。GDB主要完成下面三个方面的功能: 1.启动被调试的程序。 2.让被调试的程序在指定的位置停住。 3.当程序被停住时,可以检测程序状态。 GDB使用流程 1.编译生成可调试的程序 gcc –g test.c –o test 2.启动GDB gdb test 阅读全文