@ [TOC]
##前提は
、gdbがインストールされたlinux / windows を準備することです
そうでない場合は、ubantuの下のapt-getでダウンロードしてください。通常、
windows に付属してmingw64をインストールします(64ビットと32ビットを間違えないように注意してください)。
---- mfix-19.3.1
を使用してUbantu 16.04仮想マシン
を使用しています
##メソッド
### 1.ソルバーをコンパイルします
ターミナル、タイプでは
、 `` `bashの
4 -j build_mfixsolver --batch "FCFLAGS = -g -O0"
` ``
完全mfixsolver後という名前の実行可能ファイルが存在します
パラメーターの説明:--
batchは、コマンドラインからのみmfix(非GUI)を実行できることを意味します。この方法でのみ、実行可能ファイル
FCFLAGSはコンパイラーに渡されるパラメーターを表すことができます(デフォルトはgfortranで指定されていません)
-gは出力デバッグを意味します情報、この情報はgdbによって受信されます
-O0はコンパイルの最適化がないことを意味します。このパラメーターが追加された場合にのみ、ステートメントは1つずつ順番に実行されます。それ以外の場合は、プログラムのステートメントがスキップされ、しばらくするとそこに到達します。
### 2.ロードコンパイル済みプログラムのGDBは
、 `` `bashの
GDB mfixsolver
` ``
端末は内部のGDBを入力します
### 3. GDBの実行を、ソースコード表示
入力
`bashの
リストまたはL
`
表示ソースコードのいくつかの行を
入力します
`` `のbash
gas_and_solid_Yin.mfx -f RUN
` ``
gas_and_solid_Yin.mfxは、独自の.mfxの名前に置き換えプログラムを実行します
ここでコントロールCはプログラムを終了できません。プログラム
を終了するには、== control + z ==を使用してください
gbdの一般的な使用法については、
[https://www.cnblogs.com/HKUI/p/8955443.html](https://www.cnblogs.com/HKUI/p/8955443.html)を参照してください
##一般的なエラーの概要
1. --batchを使用して純粋なコマンドラインモードにコンパイルすると表示されます
`シェル
ない実行可能な形式で:ファイル形式が認識されない
` ``
GUIコンパイラが実際にシェル・ドキュメントによって生成されるので、これは、そのステートメント:ポインティングPythonの
GUIの可視mfixは、Pythonシェルのセットであります手順
2. gdb -f gas_and_solid_Yin.mfxで実行するときにパラメーターが指定されていない場合
``
***************************** *****************************************
From:mfix.f
エラー1000:入力データファイルが存在しません:mfix.dat中止しています
。
*************************************** *******************************
`` `
非常にシンプルで、デッキファイルの名前を指定しなくても、名前は自動的にmfixとして決定されます。 dat、この名前は古いバージョンでのみ使用できます
##上級:VSコードを使用して
gdbデバッグを視覚化すると、基本的にほとんどのニーズを満たすこと
ができますが、中断点を視覚化できません。vs
コードを使用してVisual Studioのようにデバッグするのは不便です
==注:まだmfixsolverをコンパイルする必要があります==
### 1準備:
ビジュアルスタジオコードをダウンロードするプラグインをインストールする
左側の拡張タブでプラグインを検索します
== morden fortranという名前のプラグインをインストール====
C / C ++
という名前のプラグインをインストール==== fortranブレークポイントという名前のプラグインをインストール==
VS CODEのローカリゼーションである中国語プラグインをインストールすることもできます
![ここに画像の説明を挿入](https://img-blog.csdnimg.cn/20200421151000815.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk、 shadow_10、text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk0MDMxNA ==、size_16、color_FFFFFF、t_70)
### 2
左側のサイドバーのデバッグボタンをクリックするようにlaunch.jsonを設定してから、小さな歯車をクリックし、最後に
図のようにC ++(GDB / LLDB)をクリックします
。 cn / aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy84NDY1NzMxLTBiNzdmNjIwNjE4Y2JhZmMucG5n?/ -oss-process = image
==その後、launch.jsonファイルが.vscodeフォルダーに表示されます(構成が間違っている場合はいつでもこのファイルを削除してから、再
実行できます)== ファイルの内容は
`` `javascript
{
// IntelliSenseを使用して関連する属性を理解します。
//マウスオーバーすると、既存のプロパティの説明が表示されます。
//詳細については、https
://go.microsoft.com/fwlink/?linkid = 830387 "version": "0.2.0"、
"configurations":[
{
"name": "(gdb )Start "、
" type ":" cppdbg "、
" request ":" launch "、
" program ":"プログラム名を入力します(例:$ {workspaceFolder} /a.out "、
" args ":[]、
" stopAtEntry " :false、
「cwd」:「$ {workspaceFolder}」、
「environment」:[]、
「externalConsole」:false、
「MIMode」:
"ignoreFailures":trueに
}
]
}
]
}
`` ` "プログラム":"たとえば、プログラムの名前を入力し、$ {} workspaceFolder /a.out"、2行目の引用符の位置は、(あなたのmfixsolverの位置を交換しますフルパス)たとえば、私のものは/ home / cl / MFiX_Cases / git_sync / Yin_0413_git_sync_case / mfixsolver
stopAtEntryはtrueに変更できます。
これは、プログラムに入った後に一時停止することを意味します。これは変更されたlaunch.json です。
`` javascript
{
// IntelliSenseを使用して、関連するプロパティを理解します。
//マウスオーバーすると、既存のプロパティの説明が表示されます。
//詳細については、https
://go.microsoft.com/fwlink/?linkid = 830387 "version": "0.2.0"、
"configurations":[
{
"name": "(gdb )Start "、
" type ":" cppdbg "、
" request ":" launch "、
" program ":" $ {workspaceFolder} / mfixsolver "、
" args ":[]、
" stopAtEntry ":true、
" cwd ": "$ {workspaceFolder}"、
"environment":[]、
"externalConsole":false、
"MIMode": "gdb"、
"setupCommands":[
{
"
}
`` `
### 3実行およびデバッグ
F5キーを押して実行し、デバッグ
する小さなツールボックスが右上隅に表示されます
![ここに画像の説明を挿入](https://img-blog.csdnimg.cn/20200421003230396.png)
ステップバイステップ(F10)はサブルーチン/関数を入力しないことを意味し、
F11はすべてのサブルーチンを入力することを意味
し、文ごとに実行すると現在のサブルーチンからジャンプすることを意味します
要点を打破する方法
![ここに画像の説明を挿入](https://img-blog.csdnimg.cn/20200421150520249.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nkmMzzG4z color_FFFFFF、t_70)
行番号の左側の空白をクリックすると、小さな赤い点が表示されます。ブレークポイント
F5は次のブレークポイントまで実行されますか
###エラーの概要
####質問1つのエラーが
解決すべき問題がある、ちょうど-f .mfxファイルエラーを指定することはできません
`` `
****************** ************************************************** **
差出人:mfix.f
エラー1000:入力データファイルが存在しません:mfix.dat中止しています
。
**************************** ******************************************
`` `
これまで何も見つかりませんでした解決策ですが、.mfxファイルの名前をmfix.datに変更します。
結局のところ、これは名前であり、問題ではありません。
####問題2
再起動時にrun_type = newをすばやく削除します。生成された結果がないはずです。実行するたびにフォルダーを空にする必要があります
起動するたびに大量のものを手動で削除するのは非常に面倒です。ターミナルコード
`` `
rm -r * .RES * .SP * * .pvd * .csv VTK BACKUP_RES * .LOG * .OUT * .TXT * .vtu * .vtp
`` `
または〜〜.bashrcで定義し
、コードを最後の行にコピーしてからターミナルを再起動し、
「 `
alias mfixclean =" rm -r * .RES * .SP * * .pvd * .csv VTK BACKUP_RES * .LOG * .OUT * .TXT * .vtu * .vtp "
` "
削除するたびにmfixcleanを実行するだけで済みます
####問題3
ブレークポイント/次のステップを実行できない主な理由は、fortranブレークポイントプラグインがインストールされていないことです
####質問4
デバッグを視覚化するだけで、mfixsolver vsコードが見つかりません。だから私はまだ自分でコンパイルする必要があります。
mfixsolverをコンパイルする必要があります
`` `bash
build_mfixsolver --batch" FCFLAGS = -g -O0 "-j 4``
`