• ベストアンサー

デバックについて教えてください。

fu-bonの回答

  • fu-bon
  • ベストアンサー率0% (0/1)
回答No.3

右も左もわからなければ前か後ろを見なさい! てゆーか、うちの会社もまったく同じ課題出されたYO! これって偶然? いちおーC言語なら「コールスタック」を見ればわかると思います...多分。

sup1
質問者

お礼

煽りはやめて下さい。 参考にしますけど・・・

関連するQ&A

  • マルチスレッドについて

    現在”猫でもできる”の87、88章を学んでおります。 まず87章でマルチスレッドの根本的なやり方を学びましたが、いきなり疑問が浮かびました。 _beginthread関数によりスレッドをスタートさせ、この関数で登録した関数内で_endthread関数を実行し終了させていることは分かります。 しかし_beginthread関数で登録した関数に引数を渡す処理がどの部分で行われているのかわかりません。 登録する関数はvoid型で引数はvoid*型でなければいけないことは分かったのですが、プログラムのどこを見てもこの登録した関数に引数を渡す処理が行われていません。 その辺の動作の説明を分かる方でいいのでよろしくお願いします。 そして88章では排他制御のマルチスレッドを行うプログラムの製作を行っているのですが、ちょっとした疑問が浮かびました。 EnterCriticalSection関数、LeaveCriticalSection関数ではさまれたプログラムは排他制御され他からアクセスされない。 この関数はこんな理解で良いんですかね? この理解で行くと、88章で説明していきますが、子ウィンドウを2つ作成しそれぞれのプロシージャ内で排他制御された関数をスレッドとしてスタートしています。 この2つのスレッドの動作についてですが、互いに排他制御関数が記述されているため、動作としてはまず左の子ウィンドウのスレッドが処理されている場合、右の子ウィンドウのスレッドは停止している。そして左の子ウィンドウのスレッドの排他制御が解放されたときに、右の子ウィンドウのスレッドが開始する。 そしてあるとき左の子ウィンドウのクライアントウィンドウ内で右クリックされた場合、その時点で排他制御されたスレッドが終了するのを待ち、終了したらcountを+1する。 こんな動作が行なわれていると理解してよいのでしょうか?

  • 新入社員の指導について

    事務員歴3年、30才の者です。 2か月程前から、新入社員の女の子(Aさん23才)に事務仕事を教えてます。 エクセル入力が多いため、今後の事を考えて、Aさんに 『時間ある時でいいので、エクセル関数(IF、AND、OR、VLOOKUPとか)をお勉強しておいてもらってもいいですか?○○部長から仕事頼まれた時に関数を使うことがあるので、使えないと作業が進まない時があるので…』と言ってしまいました。 言い過ぎてしまったでしょうか… まだ入社して5か月、事務処理始めて2か月の新入社員にはきついでしょうか…。 指導方法に毎日悩んでます。

  • 指示待ち新入社員とか言うけどさぁ

    自ら行動出来ない、自ら学ぼうとしない、気がきかない、融通がきかない、応用がきかない、空気を読まない、指示待ち新入社員とか言うけどさぁ 社会に踏み入れたばかりでまだ右も左も分からないのに新入社員に何を望んでいるんだよ? 会社の事や仕事の要領やスタイルなんて学校で学んでいないんだから最初っから知る術なんて無いんだよ? 社会で生きていく術なんて知らないんだよ? 新入社員が入ってきたら現場の人、特に上司が新入社員にちゃんと具体的に納得するまで仕事の役割や意味や仕事の流れ、状況判断とかを教えないと新入社員は何にも始まらないと思うんだけど? 自分から行動出来ないんなら何時どんな時に自分から行動しなきゃならないかを教えないといけないと思うし、業務に興味を持たせないといけないし、その業務がどんな意味があるのかを教えてやらないといけないし… 言い出したらきりがないけど 新入社員は社会の事なんて右も左も何にも分からないんだよ?

  • I/Oレジスタアドレスを関数に引数として渡すには?

    C言語について質問があるので投稿させていただきました。 現在Renesas製 RXマイコンにてポート制御のプログラムを作成しています。 そこで一点分らない点がありましたのでご教授いただければ幸いです。 現在I/Oポートレジスタの入出力設定を行っています。 レジスタ値を書き換えるだけであれば下記の通りかと思います。 #define PORTA (*(volatile unsigned char *)0x0008C00A) PORTA = 0x01; レジスタアドレスを引数として関数に渡し関数内でレジスタ値を書き換えるにはどうすれば よろしいでしょうか。 void main(void) { setPinMode(PORTA); PORTA.PODR.BIT.B0 = 0x01; while(1); } void setPinMode(uint32_t* portNumber) { *portNumber = 0x01; } としていますが上手くいきません。 型がおかしい? ポインタってものが分かってない? など色々考えてはみたのですが何分初心者なので解決に至っておりません。 よろしければご教授の程よろしくお願いいたします。

  • AppActivate関数について

    お世話になっております。 現在MS ACCESS2000で開発を行っております。 ソフトの流れで一旦ほかの.NETで開発されているプログラムを アクティブにし、その処理の完了後に現在のACCESS側をアクテイブ にするという処理を行っております。 ACCESS2000のvbaの記述では AppActivate ("Microsoft Access") と記述することでアクテイブにすることができたのですが、 ACCESS2007で起動すると上記の記述ではアクティブにできずに エラーとなります。デバックして解析したところ引数の 「title」の指定が間違っているようなのです。 ACCESS2007でこの関数を利用するにはどのように引数を指定すると よろしいものなのでしょうか? 引数としてプロセスIDを指定することもできるのですがプロセスIDの取得方法がわからず悩んでおります。 どなたかご教授いただけますと幸いに思います。

  • PCのCPUで演算処理し、Arduinoで入出力

    ArduinoをPCに接続して、Arduinoを、PCのIOボードとして使うことは可能でしょうか?つまり、信号の入出力はArduinoの入出力ポートから行って、演算処理をマイコンではなくPCのCPUでさせたいです。この場合、どのようなプログラムを書けば良いのでしょうか?Arduinoを接続しているPCのポートにアクセスして、それからArduinoの入出力ポートにアクセスするプログラムになると思うのですが、そのやり方がわかりません。一旦マイコンのレジスタにアクセスする必要があるのでしょうか?開発環境は何を使えば良いでしょうか?PCのOSはLinuxです。ご教授頂ければ幸いです。

  • エクセルの関数について教えてください

    先日もコチラで質問させていただき エクセルでの表作りを1から見直しております。 さて、次のような事が出来るのか、出来ればどのような関数(数式?)を使えばいいでしょうか? ●maxとかminの関数で最大・最小値を引数にしますが、この最大・最小値を出した日付を引数にする事は出来るのでしょうか? ちなみに表はベーシックな表にしています。1番上の行に見出しを右方向に、1番左の列に下に向かって日付を 以上、よろしくお願い致します。

  • 関数の呼び方について

    何回もすいません!これは思いっきり課題なんですけど、 これは一つの例として、OnDrow関数から入り、その途中でOnFile関数に飛び、 ファイルを読みこませたいとするときにOnDrowの中でのOnFile関数の 呼び方がわかりません。 とても初歩的なこととはわかっているのですが、 今まではメニューからファイル読みこみなどでよかったのですが、自動的にしたくなり、これを聞いています。 また、OnKeyDown関数から、OnFile関数を 呼ぶ場合などでも教えていただけるととても助かります。関数を呼ぶさいの 引数なのがあると思うのですが、この引数はCを勉強したときから苦手で いまいち理解できません。ひまな方がいましたらここも教えてください。 ヘルプでは内容がわかりませんでした。お願いします。

  • マルチスレッド化。

    今とても大きな配列を使用し、長時間処理をするプログラムを組んでいます。元々処理時間に1時間を要するプログラムを2分で処理を完了するまでに仕上げました。 しかし、探究心はおさまらずもう少し高速化に挑みたいと考えています。 過去に「猫でもわかる」のSDK第1章と2章を学び、マルチスレッドのプログラムをSDKで組んだことがあります。それを利用してマルチスレッド化を実現したいと考えています。 言語はCでVisualStudio2005を使用しています。 *疑問1   SDKの場合WinMain関数とプロシージャからの実行で_beginthread関数を記述すれば処理が開始されます。 Cでもmain関数内に記述すれば、SDKと同様に処理できるのでしょうか? *疑問2 _beginthread関数の引数に関してです。 第1引数にvoid型のスレッド関数、第2引数に0?、そして第3引数にはスレッド関数に渡すデータの引数を記述すると把握しているのですが、渡したいデータは複数あり、***型と**型、それに変数を数個とスレッド関数に渡したいデータだらけなのですが、どのように記述すればよいでしょう? *疑問3 2つのスレッドを作成しようと考えていますが、その2つのスレッドで1つの大きな配列を共有して処理したいと考えています。 そのため、スレッド間の同期が必要になるわけですが同期の種類にもクリティカルセクションやミューテックス、イベントと豊富でどれを使用すれば良いのか迷ってしまいます。厳密に同期を取り処理をするにはイベントが一番良いと考えています。 これらの疑問に答えられる方はアドバイスをよろしくお願いします。

  • ベッセル関数

    円筒座標系での電磁場のマクスウェル方程式を磁場に関して解いて得られる解が複素数を引数とする0次のベッセル関数 AJ0(kr)、kが複素数、Aは実係数、rは実変数 で得られるのですが 引数を実数に変換する方法がわかりません。 純虚数の引数であれば実数の引数の変形ベッセル関数に変換でき、 実数の引数であれば手持ちの本にベッセル関数の値が載っているのですが 複素数の引数の場合の処理方法がわからなくて困っています。 よろしくお願いします。