2016-10-31 11 views
0

このタイプの問題を何度も抱え続けているので、今質問しています。私はエレクトロニクス技術者であり、低レベルのコードを書くのに慣れていました。私はC++でポインタを使用しています。デバッグ中にポインタの参照を解除する方法

私はchar * msgという機能を持っています。関数でブレークポイントを使って実行を停止すると、char *パラメータの最初のバイトだけを見ることができます。残りはどうやって手に入れますか? char *はnullで終了することはできず、固定サイズではありません。私はそれがどれくらいの長さであるかを知ることができると仮定して、私は地方にどのように伝えるべきか分かりません窓。

Visual Studioには、イミディエイトウィンドウとデバッグウィンドウと呼ばれるものがあります。私は以前にそれらを使用していない?このmsgの任意の文字を印刷するために使用できますか?ブレークモード中に?どうやって?

+1

'' char *はnullで終わらず、固定サイズではない」と仮定して、ポインタ内のアドレスを確認し、[_Memory_](https://msdn.microsoft.com/en- us/library/s3aw423e.aspx)タブでは、そのアドレスに移動して、最初からコンテンツが何であるかを調べることができます。誤っていない場合は、関数の前でそれを行い、デバッグ中にそのアドレスの内容がどのように変更されているかを確認します(変更されたバイトはハイライトされます)。 –

+0

私はこのメモリビューアについて知りませんでした。しかし、これは16進数でしか表示されません。それらのうちの1つを即座に使用するか、ここでデバッグウィンドウを使用することは本当に不可能ですか?私はこれらのWindowsが何のために使われているのか困惑しています。 – quantum231

+0

@ quantum231、この問題に関する最新情報をお知らせください。 –

答えて

0

我々は、デバッグウィンドウに直接それをデバッグすることができませんでした、他のメンバーも*パラメータを前に、この種の問題を尋ねたし、それだけで文字の最初のバイトを示した理由を共有:

http://www.cplusplus.com/forum/general/23205/

vs2010 c++ view pointers content by debug

メモリビューアでは、データの表示方法を選択することができますが、アドレスを印刷する場合は、ボイドのポインタとしてキャスティングのように他のタイプのポインタにキャストできますその他。

関連する問題