Linux2010. 1. 28. 19:43
ar은 *.a 파일에 들어있는 함수들의 목록을 얻어내고
ldd는 단순하게 실행파일이 링킹(linking)하고 있는 so들의 목록을 얻어내고
nm은 *.so 파일에 들어있는 함수들의 목록을 얻어낸다.

nm - list symbols from object files

Synopsis
nm [-a|--debug-syms] [-g|--extern-only] [-B] [-C|--demangle[=style]] [-D|--dynamic] [-S|--print-size] [-s|--print-armap] [-A|-o|--print-file-name][--special-syms] [-n|-v|--numeric-sort] [-p|--no-sort] [-r|--reverse-sort] [--size-sort] [-u|--undefined-only] [-t radix|--radix=radix] [-P|--portability] [--target=bfdname] [-fformat|--format=format] [--defined-only] [-l|--line-numbers] [--no-demangle] [-V|--version] [-X 32_64] [--help] [objfile...]

[링크 : http://linux.die.net/man/1/nm]

You can use
nm -Ca /lib/mylib.so.1
man nm for full

[링크 : http://www.linuxquestions.org/questions/linux-general-1/list-library-function-of-a-shared-library-.so-438693/]

+
2016.06.13

For the shared libs:
Code:
nm -D /lib/mylib.so.1


Posted by 구차니
프로그램 사용/vi2010. 1. 28. 17:27
여러개의 환경설정 파일이 존재 하지만,
가장 편하게 많은 사용자에게 적용하려면, 전역 환경변수를 수정하면된다.

/usr/share/vim/vimrc
    System wide Vim initializations.
~/.vimrc
    Your personal Vim initializations.

/usr/share/vim/gvimrc
    System wide gvim initializations.
~/.gvimrc
    Your personal gvim initializations.

[링크 : http://linux.die.net/man/1/vi]

Ubuntu 9.10에서는
set hlsearch
set nu
를 추가해주면 개발자가 편하게 사용할수있다.
Posted by 구차니
프로그램 사용/vi2010. 1. 28. 16:43
음.. 말이 애매한데,
Fedora에서는 vi에서 /검색어 로 검색을 하면, 화면상에 모든 검색어들이
하이라이트 처리되었다. 검색어가 블럭으로 선택되어 다르게 표시되어 눈에 띄었는데 우분투는 되지 않았다.

아무튼 페도라와 우분투의 설정을 비교해보니, hlsearch 라는 넘이 있는데
기본값은 off 라고 되어있다. 아마 페도라가 개발자가 많이 쓰다 보니 기본값을 on으로 했나보다.

'hlsearch'      off        no highlighting of search matches

[링크 : http://vimdoc.sourceforge.net/htmldoc/options.html]


:set hlsearch

:set nohlsearch

'프로그램 사용 > vi' 카테고리의 다른 글

vi 상태표시줄 설정 / 편집중인 파일이름 보기  (0) 2010.01.29
vi 환경설정 파일  (0) 2010.01.28
vi 파일 여러개 관리하기  (0) 2010.01.28
vi 에서 명령어 실행하기  (0) 2010.01.28
vi set commands  (0) 2010.01.27
Posted by 구차니
1. Intel + Nvidia 최적화? (개발)
    애인꺼랑 내꺼랑 컴퓨터는 생각보다 차이나지는 않는다.
    PC방 역시 종합성능으로는 내꺼에 열세일텐데.. Intel CPU라서 그런지 랙이 덜하다.
    AMD CPU를 쓰는 내껏만 유독 랙이 심한 느낌이다랄까..

2. 마비노기 영웅전 beta (운영)
    구글의 beta 정책인가. 솔찍히 너무 자주 서버 점검을 하지만
    상대적으로 불평이 적은건 30분 정도의 짧은 점검시간, 그리고 잦은 업데이트로 인한 상대적인 만족감을 주기 때문이다.
    아, 그래도 무언가 열심히 수정하고 있구나! 라는 안도감이 들기 때문이다.

3. UI / 시스템의 아쉬움 (시스템)
    a. 보스를 잡으면 시네마틱하게 보여주는데 대화창이 화면을 가린다거나,
    각종 상태 메시지가 나오기 때문에(갑옷이 파괴되었습니다. 피가 적습니다 등의)
    스샷찍고도 뭥미! 라는 느낌
    b. 그리고 수리하고, 제작의뢰하고 이러한 작업에 클릭질을 너무 많이 해야 한다는 점(메뉴의 depth가 깊음)
    c. 친절한것도 좋지만, 두번째 플레이하는 사람들에게는 좀 대사 skip 기능이 있으면 좋겠다는 점
    d. 필드 크기에 비해서 너무 로딩이 잦다는점
        (던전 가려면 마을에서 나가고(1번째 로딩) 배에 타고(2번째 로딩) 던전에 들어가고(3번째 로딩)
        던전에서 지역 이동시 (4번째 로딩... 최대 3번 추가) 그리고 선착장에 도착(5번째 로딩) 마을에 들어갈때(6번째 로딩))

4. 던전 투입시 장비 제한(시스템)
    총 3개의 아이템과 1개의 보조무기를 가지고 간다.
    물론 긴박감이나 단축키의 단순화에 많은 편의를 제공하고, 전략적인 선택을 가능하게 하지만
    그래도 3개는 좀 적은 느낌이다. 그리고 창류는 7개가 머니 ㅠ.ㅠ 던진거 회수해서 쓰게 안한걸 다행이라고 여길까?

5. 차라리 내구를 까란 말이다!! 퍼거스!! (시스템)
    게임내부 아이템 소비를 위한 방편으로 기획된것으로 보이지만, 장비의 내구도 소비가 많아서(영웅전 용어로는 노후도)
    노후화된 장비는 파기하고 새로운 아이템을 맞추는게 오히려 득이 된다.
    하지만, 이러한 장비를 맞추는것 조차도 극악의 드랍율로 인해 쉽지 않는 편이다.
    물론, 현실적으로 오래된 무기는 벼르기가 힘들기 때문에 어느정도 납득이 되긴 하지만 상대적으로 아쉬운 감이 있다.
    기획적인 부분으로 보이기 때문에 노후도에 따른 수리비를 줄이는 쪽으로, 그리고 컨디션의 소비도 조금 줄이면 좋을듯

6. 아 던전 보상 짠돌이! (시스템)
    현재 개발중인 내용에 2010.01.28일자로 떴지만, 파티로 할경우 보상금액이 적어지는 문제로 수정중이라고 한다.
    그렇다면 수리비의 안습을 어느정도 커버가능할듯. 아무튼, 드랍율은 너무 극악이다.
    [링크 : http://heroes.nexon.com/Post.aspx?b=5&n=55]

7. 가방이.... 왜케 적어?! (시스템)
    이 부분은 기획적인 차이일지도 모르지만, 인벤토리가 너무 적다.
    물론 퀘스트 진행하면 가방을 2개 무상으로 얻을수 있지만, 와우에 비교하면 너무 짠돌이다.
    나중을 생각해서 재료들도 모아놔야 하는데 그거 치고는 너무 적은 인벤이고,
    얼음계곡 가기 전에는 정말 인벤 부족으로 허덕인다.
    초기에 가방을 두개를 주거나, 은행개념으로 추가로 짐을 맡아 놓을수 있는 공간이 더 있으면 좋겠다.

8. 편지 보내는데... 비싸다? (시스템)
   1시간 지연되어 보내는건 싸지만, 바로 보내는건 비싸다. 게임상의 돈이 쌓이면 문제가 된다는 마비노기의 교훈을
   받아들였는지 이번에는 돈을 쌓지도 못하게 쓰는걸 팍팍 만들어 놓은게 티가 날정도인데..
   그러면 초기에 초보자들이 힘들다 ㅠ.ㅠ
   음.. 편지로 주고 받는건 고급기능이라고 하진 않겠지?

9. 홈페이지가 부실해! (홈페이지)
    물론 개발자들 바쁘겠지만.. 운영자도 바쁘겠지만, 마비노기적 처럼
    각종 스킬들에 대한 설명이 없어서 한동안 인챈트도 어떻게 하는지 알수가 없었다.
    다른 게임 포탈에 가서야 겨우 알아냈는데, 이러한 기본적인 시스템에 대한 설명도
    공식 홈페이지에 없다는 것은 조금 문제가 있지 않을까 생각이 된다.

10. 단순한 전투 (시스템)
     어쩌면 편법을 찾아낸 것이 되지만, 수리비 압박을 피하기 위해 맞지 않아야 하고
     결국은 맞지 않고 최대한의 데미지를 끌어내는 방향으로 단순화 된다. 보조무기로 전략적으로
     발을 묶을수도 있지만, 그런 시간 보다는 적절하게 피해가면서 더욱 강력하게 때리는게
     더욱 빨리 끝낼수있기 때문이다. 물론 이러한 피하는 식의 전투로도 충분히 긴장감이 들지만
     정형화된 패턴으로 전투가 흘러간다는 점은 금세 질리게 되지 않을까 하는 아쉬움이 든다.
     (생각보다 빨리 전투에 익숙해진다.)

아무튼, 영웅전 힘들게 세상에 나왔고, 개발진 사정이 여의치 않아
무리한 오픈에 개고생을 하고 있을테고, 돈에 쪼들려 프리미어 오픈하면서 개발비 충당하는 것으로 보이기에
그리고 너무 마음에 드는 게임이 사라지지 않길 바라며



결론 : 결제를 하라!!!! (응?)
Posted by 구차니
프로그램 사용/vi2010. 1. 28. 14:57
멀티윈도우 라고도 표기하는 녀석으로
텍스트에서 여러개 창으로 분할해서 사용하는 기능이다.

창 닫기
:q
ctrl - w, c(close)

새로운 창 열기 (가로 분할)
:new
ctrl - w, n

새로운 창 열기 (세로 분할)
ctrl - w, v(vertical)

새로운 창 열기 (파일명) - include 의 파일들을 따라간다.
ctrl - w, f(file)

새로운 창 열기 (ctags)
ctrl - w, ] (창을 열고 창에서 이동)
ctrl - ] (전체화면으로 이동)

창간 이동
ctrl - w, hjkl(좌/위/아래/우)
ctrl - w, tb(최상단=top / 최하단=bottom)
ctrl - w, w(순서대로 이동)

창을 전체 화면으로
:only

[링크 : http://pitfall.egloos.com/1310038]

2010.03.09 추가
수평창 크기 변경
ctrl - w, +/- (키패드는 안되는 듯?)
ctrl - w, n, +/- (숫자 입력후 +/-)

[링크 : http://www.ilug.or.kr/?mid=lec_tip&page=3&document_srl=42573]

2011.11.20 추가
수직창 크기 변경
ctrl - w, </>
[링크 : http://stackoverflow.com/.../with-vim-how-would-one-increase-the-vertical-split-window-size ]

2014.09.04 추가
새로운 창 열기 (가로 분할)
:split

새로운 창 열기 (세로 분할)
:vsplit

[링크 : http://nan1004au.tistory.com/41]
Posted by 구차니
프로그램 사용/vi2010. 1. 28. 12:07
vi 내부에서 외부 프로그램을 실행하는 방법으로
:! 명령어
를 입력하는 방법이 있다.

[링크 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Vim/Documents/Tip/ExternalCommand]


$ vi ./src/modules/modules.c

ABOUT-NLS  INSTALL.win32  NEWS        bootstrap    config.status   doc       m4          rvlc      test              vlc.compile.log
AUTHORS    INSTALL.wince  README      compat       configure       extras    make-alias  share     toolbox
COPYING    MAINTAINERS    THANKS      compile      configure.ac    http.pre  modules     src       vlc
ChangeLog  Makefile       aclocal.m4  config.h     configure.help  include   po          stamp-h1  vlc-config
HACKING    Makefile.am    autotools   config.h.in  configure.log   libs      projects    svlc      vlc-config.in
INSTALL    Makefile.in    bin         config.log   cvlc            libtool   qvlc        tags      vlc-config.in.in

Press ENTER or type command to continue

VI 에서 편집중에
:! ls
를 실행한 결과
Posted by 구차니
퇴근길도 사람은 붐빈다(당연한가?)

사람들은 북적대고 서로 마주보고 있으면 민망하고 그래서 한발 물러서다보니
지하철 비좁은 틈에 거리가 생긴다. 그러면 다른사람들이 더 비좁아질테고..

아무튼 그 비좁은 틈에서도 열심히 신문과 책을 읽는 사람들이 보인다.
책을 읽는걸 보면 아주 머리가 텅텅 소리 내는 사람은 아닐진데..
아직 수양이 부족한걸까? 자신의 지식욕을 위해 약간의 양보를 하지 않는다니..
이런 저런생각이 들었다.


핸드폰 매너모드로 안하고 문자보내는 군상들
볼륨 이빠이 해놓고 듣는 귀머거리들


이러한 사람들을 보고있노라면, 이딴 세상 망해버려! 라는 소리가 절로 나오긴 한다.
머.. 그러지 말라고 이야기 못하는 나도 문제이긴 하군.

'개소리 왈왈 > 직딩의 비애' 카테고리의 다른 글

연말정산 배우자 등록  (2) 2010.02.03
"하루늦은" 퇴근일기 - 20100202  (4) 2010.02.03
나도 늙은게야 -ㅁ-  (8) 2010.01.17
출근일기 - 20100113  (2) 2010.01.13
퇴근일기 - 20100111  (4) 2010.01.12
Posted by 구차니
MBLee.no.brain 하나로도 충분한디 버거운디, 왜 너까정 GR이냐 ㄱ-

이기수 고대 총장 "우리나라 등록금 싸"
[링크 : http://media.daum.net/society/education/view.html?tvcateid=1003&newsid=20100127154816175&p=mbn]
Posted by 구차니
프로그램 사용/gcc2010. 1. 27. 17:18
#if 문이라던가 각종 전처리기용 문구들은
여러가지 확장을 통해서 컴파일을 하기 때문에 source insight 등의 힘을 빌려도 분석하기 어려운 면이 있다.

일반적으로 컴파일러는 전처리기 - 컴파일 - 어셈블 - 링크 과정을 거치는데(아마도?)
전처리기 까지만 거친 결과를 stdout 으로 출력해준다.

$ man gcc
       -E  Stop after the preprocessing stage; do not run the compiler proper.
            The output is in the form of preprocessed source code, which is sent to the standard output.

           Input files which don't require preprocessing are ignored.

[링크 : http://linux.die.net/man/1/gcc]

$ cat test.c
#if 1
int test;
#else
int tt;
#endif

int main()
{
        return 0;
}

$ gcc -E test.c
# 1 "test.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "test.c"

int test;




int main()
{
 return 0;
}


#include 하는 모든 파일을 확장하기 때문에, #include <stdio.h>만 해도 내용이 엄청 길어진다.
그리고 줄단위로 처리하기 때문에 사라진 #if 문 대신 엔터만 남아 위와 같이 휑~하게 나왔다.


[링크 : http://cafe.naver.com/devctrl/949]
Posted by 구차니
프로그램 사용/vi2010. 1. 27. 15:42
set 명령어 모음을 보려면(설정된 값들)

:set all 하면 나온다.
우르르르 나오긴 하는데 음.. 머가 먼지는 ㄱ-

:set all
--- 옵션 ---
  aleph=224           foldclose=          mousemodel=extend   swapfile
noarabic              foldcolumn=0        mousetime=500       swapsync=fsync
  arabicshape         foldenable        nonumber              switchbuf=
noallowrevins         foldexpr=0          numberwidth=4       synmaxcol=3000
noaltkeymap           foldignore=#        omnifunc=           syntax=cpp
  ambiwidth=single    foldlevel=0         operatorfunc=       tabline=
noautochdir           foldlevelstart=-1 nopaste               tabpagemax=10
noautoindent          foldmethod=manual   pastetoggle=        tabstop=8
noautoread            foldminlines=1      patchexpr=          tagbsearch
noautowrite           foldnestmax=20      patchmode=          taglength=0
noautowriteall        formatexpr=       nopreserveindent      tagrelative
  background=light    formatoptions=tcq   previewheight=12    tagstack
nobackup              formatprg=        nopreviewwindow       term=xterm
  backupcopy=auto     fsync               printdevice=      notermbidi
  backupext=~       nogdefault            printencoding=      termencoding=
  backupskip=/tmp/*   helpheight=20       printfont=courier noterse
nobinary              helplang=ko         printmbcharset=     textauto
nobomb              nohidden              printmbfont=      notextmode
  bufhidden=          history=50          prompt              textwidth=0
  buflisted         nohkmap               pumheight=0         thesaurus=
  buftype=          nohkmapp              quoteescape=\     notildeop
  cdpath=,,         nohlsearch          noreadonly            timeout
  cedit=^F          noicon                redrawtime=2000     timeoutlen=1000
  charconvert=        iconstring=         remap             notitle
nocindent           noignorecase          report=2            titlelen=85
  cinoptions=         iminsert=0        norevins              titlestring=
  cmdheight=1         imsearch=0        norightleft         nottimeout
  cmdwinheight=7      includeexpr=        ruler               ttimeoutlen=-1
  columns=87        noincsearch           rulerformat=        ttybuiltin
nocompatible          indentexpr=         scroll=28           ttyfast
  completefunc=     noinfercase         noscrollbind          ttymouse=xterm2
noconfirm           noinsertmode          scrolljump=1        ttyscroll=999
nocopyindent          isprint=@,161-255   scrolloff=0         ttytype=xterm
  cpoptions=aABceFs   joinspaces        nosecure              undolevels=1000
  cscopepathcomp=0    key=                selectmode=         updatecount=200
  cscopeprg=cscope    keymap=             shell=/bin/bash     updatetime=4000
  cscopequickfix=     keymodel=           shellcmdflag=-c     verbose=0
nocscopetag           keywordprg=man      shellquote=         verbosefile=
  cscopetagorder=0    langmap=            shelltemp           virtualedit=
nocscopeverbose       langmenu=           shellxquote=      novisualbell
nocursorcolumn        laststatus=1      noshiftround          warn
nocursorline        nolazyredraw          shiftwidth=8      noweirdinvert
  debug=            nolinebreak         noshortname           whichwrap=b,s
nodelcombine          lines=57            showbreak=          wildchar=<Tab>
  dictionary=       nolisp              noshowcmd             wildcharm=0
nodiff              nolist              noshowfulltag         wildignore=
  diffexpr=           listchars=eol:$   noshowmatch         nowildmenu
  diffopt=filler      loadplugins         showmode            wildmode=full
nodigraph             magic               showtabline=1       wildoptions=
  display=            makeef=             sidescroll=0        window=56
  eadirection=both    makeprg=make        sidescrolloff=0     winheight=1
noedcompatible        matchtime=5       nosmartcase         nowinfixheight
  encoding=utf-8      maxcombine=2      nosmartindent       nowinfixwidth
  endofline           maxfuncdepth=100  nosmarttab            winminheight=1
  equalprg=           maxmem=254460     nospell               winwidth=20
noerrorbells          maxmemtot=254460    spellfile=          wrap
  esckeys             menuitems=25        spelllang=en        wrapmargin=0
  eventignore=      nomodeline            spellsuggest=best   wrapscan
noexpandtab           modelines=5       nosplitbelow          write
noexrc                modifiable        nosplitright        nowriteany
  fileformat=unix   nomodified            startofline         writebackup
  filetype=cpp        more                statusline=         writedelay=0
nofkmap               mouse=              suffixesadd=
  backspace=indent,eol,start
  backupdir=.,~/tmp,~/
  breakat= ^I!@*-+;:,./?
  casemap=internal,keepascii
  cinkeys=0{,0},0),:,0#,!^F,o,O,e
  cinwords=if,else,while,do,for,switch
  comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
  commentstring=/*%s*/
  complete=.,w,b,u,t,i
  completeopt=menu,preview
  define=^\s*#\s*define
  directory=.,~/tmp,/var/tmp,/tmp
  errorfile=errors.err
  errorformat=%*[^"]"%f"%*\D%l: %m,"%f"%*\D%l: %m,%-G%f:%l: (Each undeclared identifier
 is reported only once,%-G%f:%l: for each function it appears in.),%f:%l:%c:%m,%f(%l):%
m,%f:%l:%m,"%f"\, line %l%*\D%c%*[^ ] %m,%D%*\a[%*\d]: Entering directory `%f',%X%*\a[%
*\d]: Leaving directory `%f',%D%*\a: Entering directory `%f',%X%*\a: Leaving directory
`%f',%DMaking %*\a in %f,%f|%l| %m
  fileencoding=utf-8
  fileencodings=ucs-bom,utf-8,default,latin1
  fileformats=unix,dos
  fillchars=vert:|,fold:-
  foldmarker={{{,}}}
  foldopen=block,hor,mark,percent,quickfix,search,tag,undo
  foldtext=foldtext()
  formatlistpat=^\s*\d\+[\]:.)}\t ]\s*
  grepformat=%f:%l:%m,%f:%l%m,%f  %l%m
  grepprg=grep -n $* /dev/null
  guicursor=n-v-c:block,o:hor50,i-ci:hor15,r-cr:hor30,sm:block
  helpfile=/usr/share/vim/vim72/doc/help.txt
  highlight=8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMs
g,M:ModeMsg,n:LineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visua
l,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:Di
ffDelete,T:DiffText,>:SignColumn,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu
,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColum
n,.:CursorLine
  include=^\s*#\s*include
  indentkeys=0{,0},:,0#,!^F,o,O,e
  isfname=@,48-57,/,.,-,_,+,,,#,$,%,~,=
  isident=@,48-57,_,192-255
  iskeyword=@,48-57,_,192-255
  lispwords=defun,define,defmacro,set!,lambda,if,case,let,flet,let*,letrec,do,do*,defin
e-syntax,let-syntax,letrec-syntax,destructuring-bind,defpackage,defparameter,defstruct,
deftype,defvar,do-all-symbols,do-external-symbols,do-symbols,dolist,dotimes,ecase,etype
case,eval-when,labels,macrolet,multiple-value-bind,multiple-value-call,multiple-value-p
rog1,multiple-value-setq,prog1,progv,typecase,unless,unwind-protect,when,with-input-fro
m-string,with-open-file,with-open-stream,with-output-to-string,with-package-iterator,de
fine-condition,handler-bind,handler-case,restart-bind,restart-case,with-simple-restart,
store-value,use-value,muffle-warning,abort,continue,with-slots,with-slots*,with-accesso
rs,with-accessors*,defclass,defmethod,print-unreadable-object
  matchpairs=(:),{:},[:]
  maxmempattern=1000
  mkspellmem=460000,2000,500
  nrformats=octal,hex
  paragraphs=IPLPPPQPP TPHPLIPpLpItpplpipbp
  path=.,/usr/include,,
  printexpr=system('lpr' . (&printdevice == '' ? '' : ' -P' . &printdevice) . ' ' . v:f
name_in) . delete(v:fname_in) + v:shell_error
  printheader=%<%f%h%m%=페이지 %N
  printoptions=paper:a4
  rightleftcmd=search
  runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim72,/
usr/share/vim/vimfiles/after,/var/lib/vim/addons/after,~/.vim/after
  scrollopt=ver,jump
  sections=SHNHH HUnhsh
  selection=inclusive
  sessionoptions=blank,buffers,curdir,folds,help,options,tabpages,winsize
  shellpipe=2>&1| tee
  shellredir=>%s 2>&1
  shortmess=filnxtToO
  spellcapcheck=[.?!]\_[\])'"^I ]\+
  suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.
out,.toc
  tags=./tags,./TAGS,tags,TAGS
  titleold=빔을 날게 해 주셔서 고맙습니다
  viewdir=~/.vim/view
  viewoptions=folds,options,cursor
  viminfo='100,<50,s10,h



[링크 : http://www.eng.hawaii.edu/Tutor/vi.html]
Posted by 구차니