結局、どこをいじったのかだけ見たい忙しい人向け。 これだけ読めばどこを変えたのかがわかる。
最終日を残して(実際の最終日は投稿日ではないのだがトップで断っている)だいたい実装を終えてしまった僕達であったが、";"落としたらいけない反例が見つかってしまった… それは変数宣言後の";"である。つまり、 int main(){ int i i=1 printf("%d\n",i) } …
さて、前回アセンブリの領域に入ってしまい詰んでしまったように思われたがエラーを吐いている関数obj->func->exec_child()の引数に実行可能ファイルcc1が入っていることがわかった。 ここで/home/denjo/gcc_install/libexec/…/cc1をデバッグすることにした…
さて、前回で"hoge.c"をコンパイルしたときコマンド無しで"hode.out"となるような改造を実装できた。そこで次の目標を立てることにした。 みなさん、こんにちわ と みなさん、こんにちわ。 とで相手に伝わる意味が変わるのだろうか。変わらない。 あくまで句…
gcc のオプションに"-v" なるものが存在するらしい。このコマンドはgccが実行したすべてのコマンドを見ることができるという。 $ ./gcc -v test.c /home/denjo/gcc_install/libexec/gcc/x86_64-pc-linux-gnu/6.2.0/collect2 -plugin /home/denjo/gcc_install…
二日目に結局どこで"a.out"を決定していたのかわからなかった僕らは、直接"a.out"を出力ないし渡している関数があるのではないかと思い、grepコマンドに頼ることにした。 フォルダーを"/home/denjo/gcc-6.2.0/gcc"に指定して、ターミナルに $ grep -r -I "a/…
さて、早速デバッグに取り掛かろう! GNU Debuggerを用いてデバッグを行った。 デバッグを行う前に、gccと同じディレクトリ内(/home/denjo/gcc_install/bin)にc言語で書かれたプログラム、test.cを用意した。 test.c #include <stdio.h> int main(){ printf("Hello Wo</stdio.h>…
gccコンパイラーを用いたことがある人なら誰もが一度は gcc ファイル名.c でコンパイルを行い、a.out(Cygwin環境ならばa.exe)という実行可能ファイルを生成したことがあるだろう。また、 gcc -o hoge hoge.c でコンパイルしてhoge(hoge.exe)という実行可能フ…