您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Advanced+Linux+Programming
AdvancedLinuxProgramming://://blog.csdn.net/Wolf0403wolf0403@hotmail.com^_^OTPEmacsEmacsEmacsEmacsLinuxEmacsEmacsEmacsEmacsLearningGNUEmacsDebraCameronBillRosenblattEricS.RaymondO’Reilly1996GNUEmacs1.1.1C/C++EmacsemacsEmacsFileOpenFilesminibuffer1C.c.hC++.cpp.hpp.cxx.hxx.C.HSaveBufferEmacsEmacsExitEmacs(){printf(“Hello,world\n”);}printfTabEmacsintmain(){printf(“Hello,world\n”);}EmacsEmacsEmacsEmacs21.1.3EmacsCC++Emacsint~/.emacs(global-font-lock-modet)EmacsC/C++.emacsLISPLISPEmacsLISPLISPEmacs“reciprocal.hpp”intmain(intargc,char**argv){inti;i=atoi(argv[1]);printf(“Thereciprocalof%dis%g\n”,i,reciprocal(i));return0;}1.2reciprocal.cppC++reciprocal.cpp#includecassert#include“reciprocal.hpp”doublereciprocal(inti){//i0assert(i!=0);return1.0/i;}reciprocal.hpp1.31.3reciprocal.hppreciprocal.hpp“C”{#endifexterndoublereciprocal(inti);#ifdef__cplusplus}#endif1.2.1Cgcc–cCmain.cmain.o%gcc–cmain.cC++g++gccreciprocal.cpp%g++-creciprocal.cpp–creciprocal.o-IGCC–Isrcincludereciprocal.cppg++../includereciprocal.hpp%g++-c–I../includereciprocal.cppreciprocal.cppNDEBUGreciprocal.cpp#defineNDEBUG%g++-c–DNDEBUGreciprocal.cppNDEBUG%g++-c–DNDEBUG=3reciprocal.cppGCC-O2GCCGCC2reciprocal.cpp%g++-c–O2reciprocal.cpp1.4GDBbug:main.oreciprocal.og++$(CFLAGS)–oreciprocalmain.oreciprocal.omain.o:main.creciprocal.hppgcc$(CFLAGS)–cmain.creciprocal.o:reciprocal.cppreciprocal.hppg++$(CFLAGS)–creciprocal.cppclean:rm–f*.oreciprocal$(CFLAGS)TabmakeEmacsMakefileEmacs%make–cmain.cg++-creciprocal.cppg++-oreciprocalmain.oreciprocal.omakemain.cmake%makegcc-cmain.cg++-oreciprocalmain.oreciprocal.omakemain.oreciprocal.cppreciprocal.o$(CFLAGS)makeMakefileGNUmake%makecleanrm–f*.oreciprocal%makeCFLAGS=-O2gcc-O2–cmain.cg++-O2–creciprocal.og++-O2–oreciprocalmain.oreciprocal.o-O2$(CFLAGS)make%infomakeMakefileGNU,Autoconf,Automake,andLibtoolGaryV.Vaughan,BenElliston,TomTromeyIanLanceTaylor2000NewRiders1.4GDB5GNUTheGNUDebugger,GDBLinuxGDB1.4.1GDB–gMakefilemakeCFLAGS–g%makeCFLAGS=-ggcc–g–cmain.cg++-g–creciprocal.cppg++-g–oreciprocalmain.oreciprocal.o-g1.4.2GDBgdb%gdbreciprocalgdb(gdb)run(gdb)runStartingprogram:reciprocalProgramreceivedsignalSIGSEGV,Segmentationfault.__strtol_internal(nptr=0x0,endptr=0x0,base=10,group=0)atstrtol.c:287287strtol.c:Nosuchfileordirectory.(gdb)mainSIGSEGVGDB__strtol_internalNosuchfileordirectorywhere(gdb)where#0_strtol_internal(nptr=0x0,endptr=0x0,base=10,group=0)atstrtol.c:287#10x40096fb6inatoi(nptr=0x0)at../stdlib/stdlib.h:251#20x804863einmain(argc=1,argv=0xbffff5e4)atmain.c:8mainNULLatoiupmain(gdb)up2#20x804863einmain(argc=1,argv=0xbffff5e4)atmain.c:88i=atoi(argv[1]);(gdb)printargv[1]$2=0x0atoiNULLbreak(gdb)breakmainBreakpoint1at0x804862e:filemain.c,line8.main6(gdb)run7Startingprogram:reciprocal7Breakpoint1,main(argc=2,argv=0xbffff5e4)atmain.c:88i=aatoi(argv[1]);nextatoi(gdb)next9printf(“Thereciprocalof%dis%g\n”,i,reciprocal(i));reciprocalstep(gdb)stepreciprocal(i=7)atreciprocal.cpp:66assert(i!=0);reciprocalEmacsgdbgdbM-xgdbEmacsgdbEmacs1.5Linuxmanpage(manualpages)–kkeyword1.5.2InfoInfoGNU/LinuxInfoHTMLinfoInfoInfoCtrl+HInfogccGCClibcGNUCgdbGNUemacsEmacsinfoInfoLinuxldasgprofInfoInfo%infolibcEmacsEmacsInfoM-xinfoC-hi
本文标题:Advanced+Linux+Programming
链接地址:https://www.777doc.com/doc-1919166 .html