• ベストアンサー

Visual C++ 2008 Express Edition でステップ実行ができない

たとえば、以下のソースコード 1: #include <stdio.h> 2: void hoge() 3: { 4:   printf("hogehoge\n"); 5: } 6: void main() 7: { 8:   hoge(); 9: } 普通は、F11でステップ実行すると、 7→8→3→4→5→9→終了 と流れていくと思いますが、 7→終了 とステップインがうまく動作していないようなのです。 この現象についてご存知の方、修復方法を教えていただけるとありがたいです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#208124
noname#208124
回答No.1

リリースビルトで(最適化込みで)デバッグしようとしているからだと思われます hogeはインライン化されmainも単純化しています 解決法も簡単にデバッグビルトでしてください、と

zephyr_11
質問者

お礼

回答ありがとうございます。 デバッグ/リリース両ビルドでステップ実行できませんでしたが、 ツール→オプション→デバッグ→'マイコード'のみ設定を有効にする チェックボックスをONにしてビルド後、OFFにしてもステップ実行できるようになりました。 原因は不明ですが、ひとまず終了いたします。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Visual C++ 2008 Express Edition

    Visual C++ 2008 Express Editionをダウンロードしたのですが、使い方が全く分かりません。C言語を学習しています。 例えば #include <stdio.h> int main(void) { printf("Hello, World!\n"); return 0; } というようなプログラミングを実行するにはどうすればいいでしょうか

  • Visual C++ Express Edition 警告に関して

    Visual C++ Express Editionを導入して最近Cを学び始めたのですが、 Visual C++ Express Editionでコンパイルした際に警告がたくさん でてしまいます。エラーさえなければ実行はできるようですが、できれば警告もなくしないです。以下がソースファイルです。 #include <stdio.h> int main(void) { int x,y,z; z=1; for(;z == 1;){ printf("数値を入力してください:\n"); scanf("%d",&x); printf("数値を入力してください:\n"); scanf("%d",&y); printf("加算すると%d\n減算すると%d\n" "乗算すると%d\n除算すると商%dは余りは%d\n",x+y,x-y,x*y,x/y,x%y); printf("計算を続けますか?\n続けなるならば1を押してください:"); scanf("%d",&z); } return(0); } コンパイルをすると警告として以下がでました。 c:\program files\microsoft visual studio 8\vc\include\stdio.h(295) : 'scanf' の宣言を確認してください。 今回の例の場合の警告の解決方法と一般的に警告をどのように解決をすればいいのか(エラーだったら文法的に間違えているのだが、警告だと?)教えてください。

  • C言語プログラミングについて

    #include <stdio.h> int main(void) { printf("hello,world\n"); } □■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■ #include <stdio.h> int main(void) { printf("hello"); printf(",world"); printf("\n"); } 上の2つのプログラムをコンパイルするとどのような違いが生じるんですか??printfってどんな働きをするんですか?

  • Visual C++ 2010 について

    プログラミングを始めようとVisual C++ 2010をインストールしました。 さっそく新規作成→プロジェクト→全般→空のプロジェクト→Sample01でファイルを作りました そのあと追加→新しい項目→コード→C++ファイル→Sample01.cとしてソースコードを次のように入力しました #include <stdio.h> {    int main(void) printf("ようこそ"\n"); return 0: } このあとソリューションのビルドをしてからデバック開始をしたら、一瞬コマンドプロンプトが開いたと思ったらすぐ閉じてしまいます。 学校の課題をやりたいの出来ません 泣 回答よろしくおねがいします!!

  • visual c++のセットアップ後

    セットアップ後にどうやってどこに作るのか忘れてしまいました。 ファイル→新規作成~~~ ソースファイルに #include<stdio.h> void main(void){ int i=0; printf("i=%d\n,i) return 0; } プロジェクトを最初につくるんだったとおもいましたが どのプロジェクトを選びどうやってソースを書くところまで いくのかを教えてください  

  • C言語について

    #include <stdio.h> int main(void) { printf("123456\tABC DEFGHIJK\n"); printf("2006/4/14\n"); printf("programing\n"); } のprintfをすべてputsに書き換えてコンパイル・実行すると、 #include <stdio.h> int main(void) { puts("123456\tABC DEFGHIJK\n"); puts("2006/4/14\n"); puts("programing\n"); } になると思うんですけど、そのputsを用いて上のprintfを用いたプログラムと同じ出力を得るにはどのようなプログラムに変えればいいのでしょうか?

  • C言語の初心者です。これを実行してみてください。

    「a」って打ち込んだら「a」ってでましたか? #include<stdio.h> int main(void){ char a; printf("aaa\n"); scanf_s("%c", &a); printf("%c", a); return 0; }

  • 【VS2008 C++】2つのプロジェクト間で共通の関数を使いたい

    【VS2008 C++】2つのプロジェクト間で共通の関数を使いたい WindowsXP上で visual studio 2008 C++ express editionを 使用しています。 1つのソリューションに2つのプロジェクトをつくり、 その2つに共通の関数を使用させたいのですが、どのように 設定すればよいか教えて頂けませんでしょうか。 ソースの内容は以下のとおりです。 具体的には、mainB.cppでcommon.cppの関数を 呼び出したいです。 //common.cpp #include <stdio.h> void showCommon(){ printf("---common-----\n"); } //common.h #include<stdio.h> void showCommon(); //mainA.cpp #include<stdio.h> #include "common.h" void main(){ printf("---mainA-----\n"); showCommon(); } //mainB.cpp #include<stdio.h> #include "common.h" void main(){ printf("---mainB-----\n"); showCommon(); }

  • C言語のプログラムについて。

    #include <stdio.h> int main(void) {   int hoge,piyo;   printf("数値を入力せよ。:");   scanf("%d",&hoge);   piyo = hoge % 2;   if (piyo == 0) {     printf("%dは、偶数。\n",hoge);   } else {     printf("%dは、奇数。\n",hoge);   };   return 0; } という、プログラムが、実行できません。 といって、エラーメッセージがでてくれないので、困っています。 ひょっとして、非常に初歩的なミスという気もするのですが。 これはよかった!という、C言語に関する書籍、また、コンピュータのシステムに関する書籍がありましたら、合わせてご教授ください。

  • C言語の実行について、

    #include <stdio.h> #define N 2 void main(void) { int i ,j ; for( i=1 ; i <= N ; ++i) { for( j=i ; j < N+2 ; ++j) { printf("j=%d\n",j); } printf("i=%d\n",i); } } を実行すると、 j=1,j=2,j=3,i=1,j=2,j=3,i=2となったんですが、 どういった順序で行われているのでしょうか? よろしくお願いします。