개소리 왈왈2009. 6. 29. 12:22
메일로 보낼게 있어, gmail로 보냈더니..
메일이 반송되어 돌아왔다.

내용이 수북히 써져있길래 먼가 하고 봤떠니 아래 링크 하나 걸어준거..

실행 파일을 보내거나 받을 수 있나요?

바이러스 감염을 예방하기 위한 보안 조치로 Gmail은 유해한 실행 코드가 들어있을 수 있는 실행 파일(예: .exe 파일)의 수신을 허용하지 않습니다.

Gmail은 이러한 유형의 파일이 압축된 형식(.zip, .tar, .tgz, .taz, .z, .gz)으로 전송되는 경우에도 받지 않습니다. Gmail 계정으로 이러한 유형의 메일이 발송되면 발신자에게 반송됩니다.


[링크 : http://mail.google.com/support/bin/answer.py?answer=6590]


문득, 네이버나 다음, 네이트에서 저런 확장자를 못 보내도록 막아 놨다면
바이러스/보안을 위해서 노력하는구나 라고 생각을 할까, 이런 미친 쉥퀴들 이라고 욕을할까 궁금해진다.

'개소리 왈왈' 카테고리의 다른 글

구글/티스토리 방문자수 누굴 믿어야 하나?  (4) 2009.07.02
지하철에서 멋진 글귀  (2) 2009.07.01
티스토리 증후근 + 월요병 + 늬우스  (0) 2009.06.29
덥다..  (2) 2009.06.28
천백이 키보드 두둥!  (0) 2009.06.27
Posted by 구차니
개소리 왈왈2009. 6. 29. 09:57
아무생각없이 포털에서 q를 누르고 있었다....
(Q는 티스토리 관리메뉴 단축키)









월요일에 비가 와서 그런가... 일이 손에 안 잡힌다.
후우...


그냥 꿀꿀해서 생각나는김에 각종 언론사 출처 이미지는 삭제
네이버는 아예 없애야 하나..

---------
뉴스를 보다 보니 피식 웃게 하는 기사가 있었다.
[링크 : http://media.daum.net/politics/view.html?cateid=1002&newsid=20090629074606547&cp=]

우리의 대통령께서 "임기내에 대운하" 하지 않으시겠다고 이야기 하셨다는데~
내 귀에는 왜... 임기후에 끝나도록 진행하겠다고 들릴까?
(일단 삽은 떠놓고 다음 대통령에게 떠넘기고, 앞에서 땅 보상으로 돈은 챙기게 해주겠다는 걸로 해석됨)

'개소리 왈왈' 카테고리의 다른 글

지하철에서 멋진 글귀  (2) 2009.07.01
구글 메일은 첨부 파일을 싫어해?  (4) 2009.06.29
덥다..  (2) 2009.06.28
천백이 키보드 두둥!  (0) 2009.06.27
어느 공대생 이야기 - 도전 만화가  (0) 2009.06.25
Posted by 구차니
개소리 왈왈2009. 6. 28. 21:28
비도 초큼와서 시원해 지지도 않고..
Posted by 구차니
개소리 왈왈2009. 6. 27. 23:14
오늘 영준아빠님에게 구매를 하러
수원을 갔는데..!!
주소를 헷갈려서

경희대를 가야 할 것을
경기대로 가버렸다 OTL


아무튼 덕분에 좋은 부품 잘 사용합니다!!!!

'개소리 왈왈' 카테고리의 다른 글

티스토리 증후근 + 월요병 + 늬우스  (0) 2009.06.29
덥다..  (2) 2009.06.28
어느 공대생 이야기 - 도전 만화가  (0) 2009.06.25
구글 애널리틱스 - 브라우저 점유율  (6) 2009.06.24
도를 아십니까?  (2) 2009.06.24
Posted by 구차니
gdb 내부 명령어 모음집

가장 눈여겨 볼 만한 부분은
help breakpoints
help running
help stack
으로

gdb에서 한줄 실행, 함수 들어가기, 나가기 등은 running에
함수 불려진 순서등의추적은 stack에
브레이크 포인트 생성/삭제는 breakpoints의 항목에 들어 있다.

일단 Visual Studio에서 많이 쓰는것들로

브레이크 포인트 설정은 break 와 delete breakpoints 이다. (F8)
(gdb) help break
Set breakpoint at specified line or function.
break [LOCATION] [thread THREADNUM] [if CONDITION]
LOCATION may be a line number, function name, or "*" and an address.
If a line number is specified, break at start of code for that line.
If a function is specified, break at start of code for that function.
If an address is specified, break at that exact address.
With no LOCATION, uses current execution address of selected stack frame.
This is useful for breaking on return to a stack frame.

THREADNUM is the number from "info threads".
CONDITION is a boolean expression.

Multiple breakpoints at one place are permitted, and useful if conditional.

Do "help breakpoints" for info on other commands dealing with breakpoints.
--------------------------------------------------------------------------------
(gdb) help delete breakpoints
Delete some breakpoints or auto-display expressions.
Arguments are breakpoint numbers with spaces in between.
To delete all breakpoints, give no argument.
This command may be abbreviated "delete".

그리고 한줄 실행은 next(행단위 실행 F10) / step(함수단위 실행 F11) 으로
원하는 곳까지 실행은 breakpoint를 잡은후 continue를 하면 된다.

(gdb) help next
Step program, proceeding through subroutine calls.
Like the "step" command as long as subroutine calls do not happen;
when they do, the call is treated as one instruction.
Argument N means do this N times (or till program stops for another reason).

(gdb) help step
Step program until it reaches a different source line.
Argument N means do this N times (or till program stops for another reason).

(gdb) help jump
Continue program being debugged at specified line or address.
Give as argument either LINENUM or *ADDR, where ADDR is an expression for an address to start at.

gdb의 차이점은, 현재 실행중인 라인을 보기가 조금은 힘들다는 것인데,
소스를 보기 위해서는 list를 입력하면 된다.
(gdb) help list
List specified function or line.
With no argument, lists ten more lines after or around previous listing.
"list -" lists the ten lines before a previous ten-line listing.
One argument specifies a line, and ten lines are listed around that line.
Two arguments with comma between specify starting and ending lines to list.
Lines can be specified in these ways:
  LINENUM, to list around that line in current file,
  FILE:LINENUM, to list around that line in that file,
  FUNCTION, to list around beginning of that function,
  FILE:FUNCTION, to distinguish among like-named static functions.
  *ADDRESS, to list around the line containing that address.
With two args if one is empty it stands for ten lines away from the other arg.




Posted by 구차니
회사일/STLinux2009. 6. 26. 15:28
왜 -pg 옵션으로 프로파일링을 해놔도 gmon.out이 생성이 안되는지
혹시 sh4-linux-gcc가 잘못된 건가? 하고 생각을 했었는데 이유는 다른데 있었다.

For users interested in tuning the performance of their applications, the STLinux distribution includes two profilers - gprof and OProfile.

The standard GNU profiler, gprof, has two key limitations for embedded Linux development:

    * It will only profile a single user mode application.
    * It will only profile an entire run of that application, and requires it to exit.

Many embedded applications are never intended to exit!

[링크 : http://stlinux.com/docs/manual/howto/how_to_guide37.php]

이래서 gprof 대신에 다른 걸 언급해 놓은 거구나 ㄱ-
Posted by 구차니
gdb는 GNU DeBugger 이고
gdbserver는 타겟보드나 원격지의 시스템을 디버깅하는데 쓰이는 서버 프로그램이다.
insight는 위의 것을 통괄적으로 사용하는 GUI 툴이다.



일단 (실패는 했지만) 간단하게 설명하자면

개발 타겟 보드에서, 프로그램 실행시에
1. gdbserver localhost:port program 으로 실행한다.
port는 딱히 정해진 well-known port가 없으므로, 임의로 설정을 하면되는 것으로 보인다.

서버측에서는
2. gdb program으로 실행한다.
3. gdb가 구동하면 target remote ipaddr:port 로 접속한다.
4. 그 다음에는 gdb 사용하듯 사용하면 된다.


insight는 사용을 해보기에는, gdb를 내장하고 있는것으로 보이며

1. File 메뉴의 Target Setting 항목에서

2. 원하는 방법을 고른 후 설정한다.

3. 나의 경우에는 시리얼에는 각종 디버그 메시지로 인해서 맘편하게 TCP로 하기로 했으니..
   아무튼 Hostname은 Target 보드의 IP, 포트는 gdbserver에서 설정했던 포트를 사용하면 된다.

크로스컴파일 실패로 실질적으로 디버깅은 불가 ㅠ.ㅠ

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

gdb 명령어 - next / step / [엔터]  (0) 2009.07.01
gdb help  (0) 2009.06.26
gdb/insight configure 도움말  (0) 2009.06.26
GDB Insight FAQ - support target list  (0) 2009.06.26
insight - GDB GUI frontend  (0) 2009.06.26
Posted by 구차니
$ ./configure --help
`configure' configures this package to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc.  You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
  --bindir=DIR           user executables [EPREFIX/bin]
  --sbindir=DIR          system admin executables [EPREFIX/sbin]
  --libexecdir=DIR       program executables [EPREFIX/libexec]
  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
  --libdir=DIR           object code libraries [EPREFIX/lib]
  --includedir=DIR       C header files [PREFIX/include]
  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
  --infodir=DIR          info documentation [PREFIX/info]
  --mandir=DIR           man documentation [PREFIX/man]

Program names:
  --program-prefix=PREFIX            prepend PREFIX to installed program names
  --program-suffix=SUFFIX            append SUFFIX to installed program names
  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
  --target=TARGET   configure for building compilers for TARGET [HOST]

Optional Features:
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-libada         build libada directory
  --enable-libssp         build libssp directory
  --enable-stage1-languages[=all]   choose additional languages to build during
                          stage1.  Mostly useful for compiler development.
  --enable-objc-gc        enable use of Boehm's garbage collector with the
                          GNU Objective-C runtime
  --enable-bootstrap      enable bootstrapping [yes if native build]
  --enable-serial-[{host,target,build}-]configure
                          force sequential configuration of
                          sub-packages for the host, target or build
                          machine, or all sub-packages
  --enable-maintainer-mode enable make rules and dependencies not useful
                          (and sometimes confusing) to the casual installer
  --enable-stage1-checking[=all]   choose additional checking for stage1
                          of the compiler
  --enable-werror         enable -Werror in bootstrap stage2 and later

Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --with-build-libsubdir=DIR  Directory where to find libraries for build system
  --with-mpfr-dir=PATH    this option has been REMOVED
  --with-mpfr=PATH        specify prefix directory for installed MPFR package.
                          Equivalent to --with-mpfr-include=PATH/include
                          plus --with-mpfr-lib=PATH/lib
  --with-mpfr-include=PATH
                          specify directory for installed MPFR include files
  --with-mpfr-lib=PATH    specify directory for the installed MPFR library
  --with-gmp-dir=PATH     this option has been REMOVED
  --with-gmp=PATH         specify prefix directory for the installed GMP package.
                          Equivalent to --with-gmp-include=PATH/include
                          plus --with-gmp-lib=PATH/lib
  --with-gmp-include=PATH specify directory for installed GMP include files
  --with-gmp-lib=PATH     specify directory for the installed GMP library
  --with-build-sysroot=SYSROOT
                          use sysroot as the system root during the build
  --with-debug-prefix-map='A=B C=D ...'
                             map A to B, C to D ... in debug information
  --with-build-time-tools=PATH
                          use given path to find target tools during the build
  --with-datarootdir      use datarootdir as the data root directory.
  --with-docdir           install documentation in this directory.
  --with-pdfdir           install pdf in this directory.
  --with-htmldir          install html in this directory.

Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
              headers in a nonstandard directory <include dir>
  CXX         C++ compiler command
  CXXFLAGS    C++ compiler flags
  AR          AR for the host
  AS          AS for the host
  DLLTOOL     DLLTOOL for the host
  LD          LD for the host
  LIPO        LIPO for the host
  NM          NM for the host
  RANLIB      RANLIB for the host
  STRIP       STRIP for the host
  WINDRES     WINDRES for the host
  WINDMC      WINDMC for the host
  OBJCOPY     OBJCOPY for the host
  OBJDUMP     OBJDUMP for the host
  CC_FOR_TARGET
              CC for the target
  CXX_FOR_TARGET
              CXX for the target
  GCC_FOR_TARGET
              GCC for the target
  GCJ_FOR_TARGET
              GCJ for the target
  GFORTRAN_FOR_TARGET
              GFORTRAN for the target
  AR_FOR_TARGET
              AR for the target
  AS_FOR_TARGET
              AS for the target
  DLLTOOL_FOR_TARGET
              DLLTOOL for the target
  LD_FOR_TARGET
              LD for the target
  LIPO_FOR_TARGET
              LIPO for the target
  NM_FOR_TARGET
              NM for the target
  OBJDUMP_FOR_TARGET
              OBJDUMP for the target
  RANLIB_FOR_TARGET
              RANLIB for the target
  STRIP_FOR_TARGET
              STRIP for the target
  WINDRES_FOR_TARGET
              WINDRES for the target
  WINDMC_FOR_TARGET
              WINDMC for the target

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

일단 컴파일 걸어 놓으러 -ㅁ-

아래는 insight 컴파일


크로스컴파일을 거는데 여전히 이상하게 작동을 하는 insight T.T

일단 실행시키면
$ ./gdb/insight

warning: A handler for the OS ABI "GNU/Linux" is not built into this configuration
of GDB.  Attempting to continue with the default sh settings.
라는 경고가 발생을 하고, sh4로 컴파일 된 녀석을 해보려고 하면


라는 경고를 출력한다. 당췌.. 어떻게 하란건지 모르겠네..

ABI는 Application Binary Interface의 약자라고 한다.
[출처 : http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/gdb/abi.html]

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

gdb help  (0) 2009.06.26
간단한 gdb/gdbserver/insight 사용법  (0) 2009.06.26
GDB Insight FAQ - support target list  (0) 2009.06.26
insight - GDB GUI frontend  (0) 2009.06.26
gdb야 좀 대충 속아라~ 응?! 아 쫌!  (6) 2009.06.18
Posted by 구차니
FAQ를 찾다가 대략 좌절

2.3 How do I know what targets are supported by Insight?

There is no definitive list of targets supported by each version of GDB/Insight. The best place to look to find out if your target is supported is in the configure script and the source tree of the particular version of insight you are using.

-> 번역
GDB/Insight의 각 버전별 지원 타겟의 목록은 없습니다. 가장 좋은 방법은 configure 스크립트와 소스를 뒤져보는 수밖에 없습니다. (장난해!!!!)

[링크 : http://sources.redhat.com/insight/faq.php#q-2.2]

아무튼 이미 컴파일되어 있는 sh4-linux-gdb의 경우 실행하면 아래와 같이 나온다.
# sh4-linux-gdb
GNU gdb STMicroelectronics/Linux Base 6.4-12 [build Oct 15 2006]
Copyright 2005 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "--host=i686-pc-linux-gnu --target=sh4-linux".
(gdb)

근데.. 저렇게 타겟을 바꾸면... insight 자체가 타겟에 맞게 바뀔려나?
아니면 gdb 부분만 sh4-linux-gdb로 교체가 가능한걸려나?

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

간단한 gdb/gdbserver/insight 사용법  (0) 2009.06.26
gdb/insight configure 도움말  (0) 2009.06.26
insight - GDB GUI frontend  (0) 2009.06.26
gdb야 좀 대충 속아라~ 응?! 아 쫌!  (6) 2009.06.18
gdb 한글 문서  (0) 2009.06.18
Posted by 구차니
insight는 GDB를 위한 GUI 프로그램이다.

About 메뉴

웬만한 창은 다 띄워본 화면

insight의 툴바. 순서대로
실행(Run) - 함수안으로(Step) - 함수다음(Next) - 함수나오기(Finish) - 계속실행(Continue)
앞에 5개만 알아도 사용하는데 지장없을 듯 하다.

사용법은 생각보다 단순해서, Visual Studio 에서 디버깅하는 느낌이 들 정도이다.
일단 자세한 사용법은 조금 더 사용해본 뒤 +_+!

[공식 : http://sources.redhat.com/insight/index.php]
[링크 : http://vasudevkamath.blogspot.com/2008/10/gdbs-gui-insight-tutorial.html]


insight를 설치하니, insight의 도움말을 띄우는데 gdb가 나온다.
아무튼 gdb로 실행하기 보다는 그냥 insight로 실행하면 된다.(gdb -w로 하면 된다는데 안된다)
Posted by 구차니