为你推荐

Linux高级编程--04.GDB调试程序(查看数据)

查看栈信息当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。下面是一些查看函数调用栈信息的GDB命令:backtrace/bt:打印当前的函数调用栈的所有信息。如:(g...

Linux高级编程--04.GDB调试程序(入门概述)

GDB概述GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面...

Linux高级编程--04.GDB调试程序(设置断点)

调试已运行的程序在UNIX下用ps查看正在运行的程序的PID(进程ID),然后用gdbPID格式挂接正在运行的程序。先用gdb关联上源代码,并进行gdb,在gdb中用attach命令来挂接进程的PID。并用detach来取消挂接的进程。暂停/恢复程序运行调试程序中,暂停程序运行是必须的,GDB可以方便地暂停程序的运行。...

Linux高级编程--02.gcc和动态库

在Linux环境下,我们通常用gcc将C代码编译成可执行文件,如下就是一个简单的例子:小实验:hello.c#include<stdlib.h>#include<stdio.h>voidmain(void){printf("helloworld!");}可以通过如下指令来编译出一个可执行文件:g...

Linux高级编程--03.make和makfile

Makefile语法基础在Linux下,自动化编译工具是通过make命令来完成的(一些工具厂商也提供了它们自己的make命令,如gmake等),make命令的基本格式如下:make[-fmakefile][label]它可以通过-f参数指定输入文件,当省略-f参数时,默认输入文件名为Makefile,由于我们通常不用这...

Linux高级编程--01.vi命令

VI是Linux/Unix下标配的一个纯字符界面的文本编辑器。由于不支持鼠标功能,也没有图形界面,相关的操作都要通过键盘指令来完成,需要记忆大量命令。因此很多人不大喜欢它,但同时由于键盘的方式往往比鼠标来得快,一旦熟练后用起来是有种非常流畅的感觉的,也有人因此而非常喜欢它。不管你喜欢也好,不喜欢也好,VI是Linux的...

PHP扩展开发--02.包裹第三方的扩展

背景也许最常见的PHP扩展是那些包裹第三方C库的扩展。这些扩展包括MySQL或Oracle的数据库服务库,libxml2的XML技术库,ImageMagick或GD的图形操纵库。在本节中,我们编写一个扩展,同样使用脚本来生成骨架扩展,因为这能节省许多工作量。这个扩展包裹了标准C函数fopen(),fclose(),fr...

PHP扩展开发--01.编写一个helloWorld扩展

为什么要用C扩展C是静态编译的,执行效率比PHP代码高很多。同样的运算代码,使用C来开发,性能会比PHP要提升数百倍。另外C扩展是在进程启动时加载的,PHP代码只能操作Request生命周期的数据,C扩展可操作的范围更广。创建扩展骨架##本例用的php版本的是5.3.3cdphp-5.3.3/ext/./ext_ske...

PHP扩展--opcache安装及配置

简介Optimizer+是Zend开发的闭源但可以免费使用的PHP优化加速组件,是第一个也是最快的opcode缓存工具。现在,Zend科技公司将Optimizer+在PHPLicense下开源成为ZendOpcache。ZendOPcache通过opcode缓存和优化提供更快的PHP执行过程。它将预编译的脚本文件存储在...

PHP扩展--taint检测隐藏漏洞

简介Taint可以用来检测隐藏的XSScode,SQL注入,Shell注入等漏洞,并且这些漏洞如果要用静态分析工具去排查,将会非常困难,比如对于如下的例子:<?phpecho$_GET["name"];?>对于请求:http://localhost/?name=222静态分析工具,往往无能为力,而Taint...

PHP扩展--XHProf优化PHP程序

简介XHProf是一个轻量级的分层性能测量分析器。在数据收集阶段,它跟踪调用次数与测量数据,展示程序动态调用的弧线图。它在报告、后期处理阶段计算了独占的性能度量,例如运行经过的时间、CPU计算时间和内存开销。函数性能报告可以由调用者和被调用者终止。在数据搜集阶段XHProf通过调用图的循环来检测递归函数,通过赋予唯一的...

PHP扩展--vld查看opcode代码

vld安装wgethttp://pecl.php.net/get/vld-0.13.0.tgztarzxvfvld-0.13.0.tgzcdvld-0.13.0/usr/local/php/bin/phpize./configure--with-php-config=/usr/local/php/bin/php-con...

PHP扩展--Suhosin保护PHP应用系统

Suhosin是一个PHP程序的保护系统。它的设计初衷是为了保护服务器和用户抵御PHP程序和PHP核心中,已知或者未知的缺陷。Suhosin有两个独立的部分,使用时可以分开使用或者联合使用。第一部分是一个用于PHP核心的补丁,它能抵御缓冲区溢出或者格式化串的弱点;第二部分是一个强大的PHP扩展,包含其他所有的保护措施。...

PHP扩展--Oracle客户端(oci8)安装

下载Oracle客户端官方下载地址:LinuxX86-64同意协议,下载以下文件:oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpmoracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm安装rpm-ivhor...

PHP扩展--APC缓存安装与使用

apc安装wgethttp://pecl.php.net/get/APC-3.1.13.tgztarzxvfAPC-3.1.13.tgzcdAPC-3.1.13/usr/local/php/bin/phpize./configure--with-php-config=/usr/local/php/bin/php-con...