C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: コンバート・プログラムのブレイクポイントが効かない


(過去ログ 109 を表示中)

[トピック内 13 記事 (1 - 13 表示)]  << 0 >>

■65046 / inTopicNo.1)  コンバート・プログラムのブレイクポイントが効かない
  
□投稿者/ MassyPie (1回)-(2013/01/31(Thu) 11:59:39)

分類:[VB.NET/VB2005 以降] 

.net初心者です。
どうぞよろしくお願い致します。

VB6で作成したプログラムを、次の順番でコンバージョンしました。

VB6 -> 2008(express) -> 2010(Professional)


2008で発生のエラー、ワーニングは全て0に修正。
2010で発生のエラー、ワーニングは全て0に修正。

2010にて、動作確認を行いました。案の定、仕様通りの動作はしなかったので、デバッガを使用して動作の確認を行いました。
ブレイクポイントを数か所に設定したのに、スルーします。
ブレイクポイントが全く効きません。

試しに、2008のコンバージョン版で同様の操作を行いましたが、ブレイクポイントは有効でした。

2010でブレイクポイントを有効とするには、何かの設定が必要なのでしょうか?

どうぞよろしくお願い致します。



引用返信 編集キー/
■65048 / inTopicNo.2)  Re[1]: コンバート・プログラムのブレイクポイントが効かない
□投稿者/ shu (163回)-(2013/01/31(Thu) 12:48:59)
No65046 (MassyPie さん) に返信

<System.Diagnostics.DebuggerStepThrough()>
の記述がある処理内にブレークポイントを貼ってないでしょうか?

ブレークポイントを貼った箇所にそもそも到達していない可能性はないでしょうか?

Debugで実行していますでしょうか?
引用返信 編集キー/
■65050 / inTopicNo.3)  Re[2]: コンバート・プログラムのブレイクポイントが効かない
□投稿者/ MassyPie (2回)-(2013/01/31(Thu) 13:54:26)
以下、回答致します。


> <System.Diagnostics.DebuggerStepThrough()>
> の記述がある処理内にブレークポイントを貼ってないでしょうか?

スタートアップオブジェクトがForm1なのですが、
Private Form1_Load(.... にブレイクポイントを設定しました。結果、スルー。

System.Diagnostics で検索しましたが、ヒットしませんでした。なので、この記述はプログラムの中にはありません。


> ブレークポイントを貼った箇所にそもそも到達していない可能性はないでしょうか?

Form1が表示されないので途中まででもプログラムが動いているのか調べるために、MsgBoxを何か所か入れました。
MsgBoxにブレイクポイントを設定しましたが、止まらずにメッセージを表示するだけです。


> Debugで実行していますでしょうか?

1.メニューから、デバッグ−>デバッグ開始
2.緑三角のアイコン

2通りの方法で実行しましたが、結果は変わらず、スルーします。

以上、よろしくお願い致します。
引用返信 編集キー/
■65052 / inTopicNo.4)  Re[3]: コンバート・プログラムのブレイクポイントが効かない
□投稿者/ tn (2回)-(2013/01/31(Thu) 14:22:46)
VBは存じ上げませんが。

ツール→オプション→デバッグ→全般→元のバージョンと完全に一致するソースファイルを必要とする

のチェックを外すとどうなるでしょうか。
引用返信 編集キー/
■65053 / inTopicNo.5)  Re[4]: コンバート・プログラムのブレイクポイントが効かない
□投稿者/ MassyPie (3回)-(2013/01/31(Thu) 14:32:12)

> ツール→オプション→デバッグ→全般→元のバージョンと完全に一致するソースファイルを必要とする
>
> のチェックを外すとどうなるでしょうか。


やってみましたが、ダメでした。(T-T)
引用返信 編集キー/
■65054 / inTopicNo.6)  Re[5]: コンバート・プログラムのブレイクポイントが効かない
□投稿者/ howling (174回)-(2013/01/31(Thu) 14:55:19)
No65053 (MassyPie さん) に返信
よくあることとして、そのファイル自体が本来のファイルと違うことがあります。
そのVBファイルは、本当にプロジェクトが参照しているものと一致していますか?
ソリューションエクスプローラ上でファイルを選択後、同じファイルが開かれているなら、一致しているとみなして良いかと思います。

次に、実行ファイルは合っていますか?
プロジェクトのプロパティから、デバッグ→開始動作がスタートプロジェクトになっているか確認してください。
もし、外部プログラムの開始になっている場合は、そのファイルがコンパイルして出力した実行ファイルと同じものかどうか確認してください。

最後に、そもそもそのFormが本当に呼ばれていない場合があります。
application.myappファイルを参照してみてください。
引用返信 編集キー/
■65056 / inTopicNo.7)  Re[1]: コンバート・プログラムのブレイクポイントが効かない
□投稿者/ コンバート後に悩む人 (24回)-(2013/01/31(Thu) 15:06:01)
No65046 (MassyPie さん) に返信

VB2010で新規プロジェクトを作成して、コンバートしたコード(フォーム、モジュール、クラス)を
既存の追加でプロジェクトに含めて、ブレークポイントで止まるかどうか確かめたら良いかもしれませんね。

となると、プロジェクトの設定がコンバートしたことにより、おかしくなったかもしれません。
その上で、VB2008でプロジェクトだけを作成してコンバートした場合と比較してみるとかもありですよね。

#とんちんかんな発想でしたらすみません。

引用返信 編集キー/
■65058 / inTopicNo.8)  Re[1]: コンバート・プログラムのブレイクポイントが効かない
□投稿者/ 魔界の仮面弁士 (146回)-(2013/01/31(Thu) 15:48:16)
No65046 (MassyPie さん) に返信
> 2010でブレイクポイントを有効とするには、何かの設定が必要なのでしょうか?

不要なはずなのですけれどね。

開発環境またはソリューション側に、なにか問題が生じているのだとは
思いますが、具体的な原因までは思い当たりません。
開発環境をリセットしてみたり、ソリューションを作り直したあとで、
PC を再起動してみて、それでも駄目かどうか確認してみてください。


で…原因追及はともかくとして、とりあえずデバッグを進めたいのであれば、
「Stop ステートメント」を使うことはできないでしょうか。

当方でも同様の問題が生じた PC があって、その原因を究明できず、
Stop で代用していたケースがありました。

ソースの修正が発生するため、代用とするには少々面倒ですが、
Stop で一時停止した後であれば、通常のステップ実行等も
問題無く行えたため、とりあえず緊急避難的に利用していました。
引用返信 編集キー/
■65059 / inTopicNo.9)  Re[2]: コンバート・プログラムのブレイクポイントが効かない
□投稿者/ MassyPie (4回)-(2013/01/31(Thu) 16:28:53)

> で…原因追及はともかくとして、とりあえずデバッグを進めたいのであれば、
> 「Stop ステートメント」を使うことはできないでしょうか。

魔界の仮面弁士が書かれた一通りのことは、やってみましたが、ダメでした。

最終的には2010で動かしますが、デバッガが使えないのは辛いので2008でデバッガを起動して確認をし始めました。
VB6->2010よりは、2008->2010の方が、変更が少ないと思えますので・・・

もし、何か分かりましたら、よろしくお願い致します。

引用返信 編集キー/
■65065 / inTopicNo.10)  Re[3]: コンバート・プログラムのブレイクポイントが効かない
□投稿者/ 魔界の仮面弁士 (147回)-(2013/01/31(Thu) 21:48:49)
No65059 (MassyPie さん) に返信
> 魔界の仮面弁士が書かれた一通りのことは、やってみましたが、ダメでした。

もしかして、ブレークポイントの行頭につく茶色の丸が、
実行時には●ではなく○になってしまう現象でしょうか?


> もし、何か分かりましたら、よろしくお願い致します。

分からないので、関係ありそうなところを:

新規プロジェクトでも起こりえる場合は、[ツール]-[オプション]の
[デバッグ]タブの内容を、2008 と 2010 とで比較してみてください。


新規プロジェクトでは発生せず、特定のプロジェクトだけで発生するなら
[My Project]-[コンパイル]-[詳細コンパイルオプション]や
[My Project]-[デバッグ]あたりを確認してみてください。


エラー発生時にもデバッガーが働かないようであれば、
[デバッグ]-[例外...]をリセットしてみてください。


また、ソースコードをネットワーク上においている場合は、
それらをローカルドライブ上に移したうえで開いてみてください。
引用返信 編集キー/
■65066 / inTopicNo.11)  Re[4]: コンバート・プログラムのブレイクポイントが効かない
□投稿者/ MassyPie (5回)-(2013/02/01(Fri) 10:37:37)

> もしかして、ブレークポイントの行頭につく茶色の丸が、
> 実行時には●ではなく○になってしまう現象でしょうか?

いえ、●は赤茶色っぽい色です。
ブレイクポイントとしては、設定されているように見えます。


> 新規プロジェクトでも起こりえる場合は、[ツール]-[オプション]の
> [デバッグ]タブの内容を、2008 と 2010 とで比較してみてください。

新規に2010で作成したプログラムは、ブレイクポイントも効きます。
コンバージョンしたプログラムだけが、効きません。


> 新規プロジェクトでは発生せず、特定のプロジェクトだけで発生するなら
> [My Project]-[コンパイル]-[詳細コンパイルオプション]や
> [My Project]-[デバッグ]あたりを確認してみてください。

全く設定が違っていたので、同じに設定しました。


全く設定が違っていたので、同じにしました。
動きました!
ありがとうございます。



ただ、この設定にしたところ0だったワーニングが17になってしまいました。
内容としては、全て旧型式です。というものです。


<ワーニング>
Microsoft.VisualBasic.Compatibility.VB6.TextBoxArray' は旧形式です: 'Microsoft.VisualBasic.Compatibility.* classes are obsolete and supported within 32 bit processes only. http://go.microsoft.com/fwlink/?linkid=160862'


<ワーニング部分>
Public WithEvents DefTagName As Microsoft.VisualBasic.Compatibility.VB6.TextBoxArray



Microsoft.VisualBasic.Compatibility.VB6.TextBoxArrayで検索したところ、魔界の仮面弁士さんの回答がヒットしました。
ワーニングだし、現在のトップ・プライオリティは「VB6の時と同じ動き」なので、余力ができたらワーニングの処理をしようと思っています。
コンバージョンの先輩として、経験上いかがなものでしょうか?
最後は、ちょっと外れた質問になってしまい申し訳ありません。

http://bbs.wankuma.com/index.cgi?mode=al2&namber=54456&KLOG=91

引用返信 編集キー/
■65067 / inTopicNo.12)  Re[5]: コンバート・プログラムのブレイクポイントが効かない
□投稿者/ shu (165回)-(2013/02/01(Fri) 11:06:37)
No65066 (MassyPie さん) に返信
> <ワーニング>
> Microsoft.VisualBasic.Compatibility.VB6.TextBoxArray' は旧形式です: 'Microsoft.VisualBasic.Compatibility.* classes are obsolete and supported within 32 bit processes only. http://go.microsoft.com/fwlink/?linkid=160862'
>
>
> <ワーニング部分>
> Public WithEvents DefTagName As Microsoft.VisualBasic.Compatibility.VB6.TextBoxArray
コンバート前にコントロール配列として実装されていた部分だと思います。
余力があるときに通常の配列定義に置き換えられた方が良いと思います。

例えば
private TextBoxs() as TextBox
とprivateの配列変数を用意し
NewまたはLoadなどで
TextBoxs = new TextBox() {TextBox1, TextBox2, ... , TextBoxn}
とする
イベントについては
For Each aTextBox as TextBox in TextBoxs
AddHandler aTextBox.Enter, AddressOf TextBox_Enter
Next

Private Sub TextBox_Enter(sender as Object, e As EventArgs)
・・・
End Sub
のように実装するとよいです。
参考まで。
引用返信 編集キー/
■65069 / inTopicNo.13)  Re[6]: コンバート・プログラムのブレイクポイントが効かない
□投稿者/ MassyPie (6回)-(2013/02/01(Fri) 11:14:55)
shu さん、どうもありがとうございます。

余力で大丈夫なのですね。
前回、初めてコンバージョンした時にワーニングだったのですが、≒エラー のようなもので、修正をしないとVB6と同じ動きになりませんでした。

本当に助かりました。

みなさま、ありがとうございます。
多謝。<(__)>

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -