0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

C言語のgdbで苦戦した話

Posted at

先日初めて、C言語でgdbを用いてデバッグしたのですが、少々苦戦したのです。

やりたいこと####

gdbを用いてちゃんとHelloWorldを出力させる。

ディレクトリ構成####

drwxrwxr-x 2 zombiest zombiest 4096  9月 29 22:34 c_file
drwxrwxr-x 2 zombiest zombiest 4096  9月 29 22:43 gdb_file

下で説明しますが、カレントディレクトリよりgccコマンドを打ち込みます。

ソースコード####

# include <stdio.h>

int main(void)
{
    char* str = "Hello World";
    printf("%s\n", str);
    return 0;
}
次にコマンドを打ち込んでファイルを出力させます。
gcc コンパイルするファイル -o 出力先ファイル
gcc ./c_file/HelloWorld.c -o ./gdb_file/HelloWorld.out
ファイルが出力されたか確認しましょう。
ls -l ./gdb_file/
-rw-rw-r--  1 zombiest zombiest 19232  9月 29 23:11 HelloWorld.out

じゃあ、最後にgdbコマンド叩いてデバッグしてみましょう!と言いたいのですが

ここで注意です!

気づいた方もいらっしゃるかもしれませんが、今のファイル権限は"664"です。
ここでは詳しくは解説しませんが、実行権限がない状態になります。

実行権限を変えてあげる必要があります。
chmod 755 ./gdb_file/HelloWorld.out

気を取り直してgdbコマンド投入

gdb ./gdb_file/HelloWorld.out
(以下、抜粋)
Reading symbols from ./gdb_file/HelloWorld.out...
(gdb) run
Starting program: /home/zombiest/working/gdb_file/HelloWorld.out 
Hello World
[Inferior 1 (process 20417) exited normally]
(gdb) 

できました〜
ちなみに、実行権限664の状態でやると
/gdb_file/HelloWorld.out: 実行できません: 許可がありません
って怒られます。いわゆる”Permission Denied”ってやつですね!気をつけましょう。
ここまで読んで頂き、ありがとうございました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?