shellで起動したexe内部のエラーをデバッグするには


とーる  2005-11-19 22:20:17  No: 92804

VB6.0

エクセルVBで記述したshellコマンドでたとえば*****.exeを
起動したとき*****.exe内部で「実行時エラー13」が出ます。
最初から動いてないのであれば設定ミスなんですが実行途中で
このエラーが出ます。

本来で あればデバッガを使えばその原因は簡単に特定できますが
この場合*****.exeにデバッガをかけることができませんよね。

単体で*****.exeを動かすと正しく動きます。

Shellで起動したexeにデバッガをかけることはできないのでしょうか。


ガッ  2005-11-19 22:36:31  No: 92805

なんとなくですが、*****.exe のコマンドライン引数が影響している気がしませんか?
大抵のデバッガはコマンドライン引数を渡してデバッグを開始させることができますので、
その方向でやってみてはどうでしょう?


とーる  2005-11-19 23:18:18  No: 92806

早速のレスありがとうございます。

コマンドライン引数ってのは具体的にどういうものでしょうか。

現在はエクセルVBAの

Shell "c:\aaaaa\bbbbb\ccccc\*****.exe"

という風に起動させています。

この場合*****.exe内部で実行時エラー13が出ています。

*****.exeでなく*****.vbpで起動してくれたら
楽なんですが。


ガッ  2005-11-19 23:22:36  No: 92807

あれー…私は、何か見当違いのことを書いていたようです(orz

> *****.exeでなく*****.vbpで起動してくれたら
VB6.exeの引数を調べてみてください。
何かそういうオプションがあるようです。

※これ以上は口を出せそうにないですね…


ヤマ@睡眠不足  2005-11-21 12:47:52  No: 92808

どこかで魔界の仮面弁士様が書いていらしたのですが、
http://www.microsoft.com/japan/msdn/columns/scripting/scripting04092001.asp
WSHをつかったらどうでしょうか?


もげ  2005-11-21 19:52:10  No: 92809

そのexeってのは、貴殿がVB6.0で書いたもの  という解釈でよろしいですか?
Excelの中から呼ぶのと手動で実行したときの差を、よく観察してみてください。
(たとえば、カレントディレクトリとか)
それから、
13は、「型が一致しません。」ですけれど、
VBのプログラム内で適切にエラートラップを行う
(エラー処理をちゃんと作りこむ)
のと、
行った処理をログに書き込む等で何処まで処理されたのか履歴を残しておく

のが解決への早道かと思いますよ。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加