운영중인 서버를 gdb로 core만들고 빠지기
운영중인 서버에서 메모리 정보를 확인해야할때가 있다.이는 gdb에서는 gcore 혹은 generate-core-file 명령을 사용하여동작 중인 코어 파일을 생성 할 수 있는데,이때 core를 write하는데 시간이 꽤 소요된다. 그래서 이를 최소화 하기 위해서 gdb를 …
운영중인 서버에서 메모리 정보를 확인해야할때가 있다.이는 gdb에서는 gcore 혹은 generate-core-file 명령을 사용하여동작 중인 코어 파일을 생성 할 수 있는데,이때 core를 write하는데 시간이 꽤 소요된다. 그래서 이를 최소화 하기 위해서 gdb를 …
원글(이글루): 2011/11/24, 9:41 오후 * 결과4번째 열인 시작주소의 값을 가지고 소팅해서 알아 보았다.myserver>$ g++ test_stack.cpp -O3 -Wallmyserver>$ ./a.out |sort -k 41 str1024 SP 0xbf8fbb18 EP 0xbf8fbf18 LEN 10245 str0512 SP …
원글(이글루): 2011-03-21 02:03:44 C/C++ Linux/Unix환경에서 ifdef 쉽게 추가하고 삭제하는 방법입니다. 1) vi에서 ifdef 편하게 넣기~/.vimrc에 다음과 같이 추가func! InsertIfdef(DEFNAME) exe “normal 0i#ifdef “.a:DEFNAME exe “normal a\<ENTER>#else // “.a:DEFNAME exe “normal …
원글(이글루): 2010-06-11 18:12:15 gdb로 map을 까봤으면 string같은게 파싱이 잘안되어서 이상하게 나올수 있는데, 그냥 무식하게 char* 로한번에 봐보도록 하자.1) 추출한 것을 일단 파일로 몰아 넣고$ cat > kkelem[0].left: $2 = (void *) …
원글(이글루): 2010-06-11 18:05:47 gdb에서 define으로 함수처럼 정의해 쓸수있다. 첨부는 STL의 list나 vector등의 값을 따라 갈때 편리하게 하기 위해서 만들어 놓은 것이다. 원본은 plist가 하나의 함수로 되어 있는데, gdb버전이 낮은 경우 argc라는 변수가 없다.그래서 인자 갯수별로 plist1 , plist2 이런식으로 함수 분리하는 작업을 한 파일도 첨부한다. ~/.gdbinit 파일을 첨부파일로 대체하면 된다.개인적으론“set print pretty on” 를 주석처리하는게 한줄에 나오고 더 좋은거 같다. 1) argc수정한 파일 2) 원본파일 테스트$ g++ -g3 a.cpp$ ./a.outNEW=0x89bf008NEW=0x89bf0a8NEW=0x89bf148NEW=0x89bf1e8NEW=0x89bf288NEW=0x89bf328NEW=0x89bf3c8NEW=0x89bf468NEW=0x89bf508NEW=0x89bf5a8MEM: A 0x89bf008 [BABO-0]MEM: B 0x89bf0a8 [BABO-1]MEM: C 0x89bf148 …
원글(이글루): 2009-12-29 20:46:11 gcc -fPIC -c file1.c file2.c # -fPIC 옵션은 cc1 컴파일러에게 위치에 관계 없이 수행되는 코드로 컴파일 하라는 옵션임# file1.o file2.o 가 만들어짐 gcc -shared -Wl,-soname,libmy.so.0 -o libmy.so.0.0.0 …
원글(이글루): 2009-12-29 20:44:31 무식하게 손으로 정적 라이브러리를 만들고 싶다면 아래처럼 하는거야.보통은 Makefile에 넣어 두겠지? 전처리file1.c, file2.c 작성, 헤더 파일도 작성 gcc -c file1.c file2.c -> file1.o file2.o가 만들어짐 ar rscv …
원글(이글루): 2009-12-29 20:33:06 보통 -v 형태의 옵션을 처리할때 사용하는 함수 ■ 사용방법#include <unistd.h> int getopt(int argc, char * const argv[], const char *optstring); extern char *optarg;extern int optind, opterr, optopt; …
원글(이글루): 2009-12-29 20:31:14 EX) ###################################PROG = mainREALPROG = putseqsrcdir = ./src CC = gccCCOPT = -O2DEFS =INCLS =LIBS =################################### debug: DEFS = $(DEFS) -DDEBUG CFLAGS = $(CCOPT) $(DEFS) $(INCLS) .c.o: @rm …
원글(이글루): 2009-12-29 20:27:44 va_list 형태로 인자를 여러개 받아 처리하는 함수를 만들수 있지. int DebugText(char *fn, int type, const char *format,…){ char buffer[1000]; int cnt; FILE *fp; va_list arglist; va_start(arglist,format); cnt = vsprintf(buffer, format, arglist); if(type == 0) { fp …