タグ付けされた質問 「debugging」

コンピュータプログラムのバグまたは欠陥の数を見つけて削減し、期待どおりに動作させるプロセス

8
bashスクリプトをデバッグする方法は?
エラーと予期しない動作について、bashの一部のスクリプトに問題があります。修正を適用できるように、問題の原因を調査したいと思います。より多くの情報を取得するために、bashで何らかの「デバッグモード」を有効にする方法はありますか?
135 bash  debugging 


3
Linuxネットワークのトラブルシューティングとデバッグ
LinuxおよびUnixユーザーは、ネットワークのさまざまな問題に時々直面していました。これらの問題の多くは、ここおよび他のトラブルシューティングフォーラムで提示されていますが、非常に具体的であり、多くの追加の技術情報が含まれています。バグのあるシステムの動作の主なポイントと本当の理由を理解するのはかなり困難です。 この質問をすることで、ネットワークのトラブルシューティングとデバッグの経験を一般化できるコミュニティWikiページを開始するつもりです。LinuxとUnixのユーザーが、このページを使用してネットワークの問題を簡単に認識して解決(「分割して征服」)できることを願っています。 このページの親は、問題を診断するためのベストプラクティスである必要があり ます。ただし、ここでは、ユーザーおよびカーネルスペースからのネットワークの問題のトラブルシューティングに焦点を当てる必要があります。 もしあなたが: 優れたネットワーク診断ツールの使用に関する情報を、具体的な使用例とネットワークバグの例とともに共有します。これらは、キャッチするのに役立ちます。 このテーマに関連するすばらしいネットワークチュートリアルへのリンクを共有します ネットワークの問題のいくつかのクラスに取り組むことを可能にする一般的な方法またはレシピについて教えてください ネットワークのデバッグとトラブルシューティングのためのツールセットに関する情報を共有する このトピックに完全に適合します。 varios 診断ツールと12年前の簡単なチュートリアルへのリンクを共有することから始めます。また、archlinuxチュートリアルには、主題に関する実際の情報があるようです。また、Linuxネットワーキングに飛び込むには、Linux Networking-HOWTOにアクセスする必要があります。

4
「git pull」は私の宿題をどのように食べましたか?
私は校長の子供が犬が私の宿題をその前夜に食べたことを説明しているように感じますが、私は顔にいくつかのクレイジーなデータ損失のバグを見つめています、そしてそれがどのように起こったのかわかりません。gitがリポジトリ全体をどのように食べられるかを知りたい!私はgitを絞り器に何度も入れましたが、点滅することはありません。20 Gig Subversionリポジトリを27 gitリポジトリに分割し、それらからfooをフィルター分岐して混乱を解き、1バイトも失わないようにしました。reflogは常にフォールバックします。今回はカーペットがなくなった! 私の観点からすると、私がしたことはすべて実行されgit pull、ローカルリポジトリ全体が無駄になりました。「チェックアウトされたバージョンを台無しにした」、「私がいたブランチ」、またはそのようなものを意味するものではありません。私が意味する、全体の事がなくなっています。 この事件の私の端末のスクリーンショットは次のとおりです。 その手順を説明します。コマンドプロンプトには現在のgitリポジトリに関するデータが含まれているため(preztoのvcs_info実装を使用)、gitリポジトリが消えた時点を確認できます。最初のコマンドは十分に正常です: » caleb » jaguar » ~/p/w/incil.info » ◼  zend ★ » ❯❯❯ git co master Switched to branch 'master' Your branch is up-to-date with 'origin/master'. そこには、私が「zend」ブランチにいて、マスターをチェックアウトしたことがわかります。ここまでは順調ですね。次のコマンドの前のプロンプトで、ブランチが正常に切り替えられたことがわかります。 » caleb » jaguar » ~/p/w/incil.info » ◼  master ★ » ❯❯❯ git pull …

8
elfバイナリからコンパイラ情報を取得できますか?
Linuxでバイナリがどのように構築されたかを知る機会はありますか?(または他のUnix) コンパイラ、バージョン、時間、フラグなど... 私は見てreadelf、多くを見つけることができませんでしたが、バイナリコード/セクションなどを分析する他の方法があるかもしれません... 抽出方法を知っていることはありますか?

4
Linuxでプログラムがスタックしている場所を知る方法は?
私はubuntuサーバーで次のコマンドを実行しています root@slot13:~# lxc-stop --name pavan --logfile=test1.txt --logpriority=trace 無期限にハングするようです。これがAIXで起こったときはいつでも、私は単に違反プロセスのPIDを取得して、 $ procstack <pid_of_stuck_process> また、プロセスのコールスタック全体を表示するために使用されていました。procstacklinux / ubuntuに同等のものはありますか?

2
GDBでステップイン、ステップオーバー、ステップアウトする方法は?
helpGDBにいる間に入力しましたが、ステップイン、ステップオーバー、ステップアウトについて何も見つかりませんでした。_start(break _start)のアセンブリプログラムにブレークポイントを配置しました。その後、入力nextしてデバッグを終了しました。思ったとおりに終了し_start、ステップインしなかったからだと思います。 助けてくれる人はいますか?


3
いくつかのbashインスタンス内で実行されている正確なコマンドラインを確認するにはどうすればよいですか?
ループ内で複雑な一連のコマンドを実行しているbash(screenセッション内で)長時間実行されているインスタンスがあります(各ループはパイプ、リダイレクトなどを実行します)。 長いコマンドラインはターミナル内に記述されました-スクリプト内にはありません。これで、bashプロセスIDがわかりました。ルートアクセス権がありbashます。その中で実行されている正確なコマンドラインを確認するにはどうすればよいですか。 例 bash$ echo $$ 1234 bash$ while true ; do \ someThing | somethingElse 2>/foo/bar | \ yetAnother ; sleep 600 ; done そして、別のシェルインスタンスで、PID 1234内で実行されたコマンドラインを表示したいです。 bash$ echo $$ 5678 bash$ su - sh# cd /proc/1234 sh# # Do something here that will display the string \ 'while true …


4
カーネルハッキング環境
私は、uCOS、ThreadXなどの組み込みOSで作業してきました。Linuxでアプリをコーディングしましたが、今はLinuxカーネルの学習を開始する予定です。環境に関する質問はほとんどありません。 カーネル開発用の使いやすいツールを備えた最適なディストリビューションはどれですか?(これまで私はRHELとFedoraを使用していました。これらに満足していますが、Ubuntuにはmake_kpkgなどの簡単なカーネルコンパイル用の組み込みスクリプトもあるようです) カーネルデバッグの最適な設定について説明してください。他の組み込みOSのデバッグ中、進行状況やJTAGなどをダンプするためにシリアルポートを使用しました。Linuxカーネル開発者はどのようなセットアップを使用しますか?(シリアルポートを備えたテストベッドPCは私のニーズに十分ですか?はいの場合、カーネルをシリアルポートにダンプするように構成する方法は?)カーネルメッセージをラップトップで読み取られるシリアルコンソールにリダイレクトすることを計画しています。 カーネルコードのデバッグとトレースに最適なツールは何ですか?前述したように、シリアルコンソールが唯一の方法ですか?または、PC用のIDE / JTAG種類のインターフェイスがありますか?

3
エイリアスまたは関数を介して、シェルで実際に実行されたコマンドを確認するにはどうすればよいですか
たとえば、bash関数(またはエイリアス)がありますfunction install() {sudo apt-get install $@}。コマンドを実行install dicelabすると、実際に実行されると予想されsudo apt-get install dicelabます。シェルによって実際に実行された内容はどこで確認できますか?私のより複雑なエイリアスが期待どおりに機能することを確認したいと思います。
20 bash  shell  debugging 

2
どのプロセスがSTDOUTに書き込みを行っているかを調べる方法は?
実行中のプロセスの2つのインスタンスがあります。それらの1つは「frEAkIng oUT!」です。また、印刷エラーはSTDOUTに止まりません。 壊れたプロセスを強制終了したいのですが、間違ったプロセスを終了させないようにする必要があります。両方ともほぼ同時に開始され、使用するtopと、どちらもほぼ同じ量のメモリとCPUを使用していることがわかります。どのプロセスが正常に動作していないかを示すものを見つけることができないようです。 最も安全なことは、どのプロセス/ pidがSTDOUTに書き込んでいるかを把握することです。 それを行う方法はありますか?


3
最適化せずにコンパイルする方法-CMakeを使用して-O0
私が使用しています科学のLinux(SL)を。多数のC ++(.cpp)ファイルを使用するプロジェクトをコンパイルしようとしています。 ディレクトリにuser/project/Build、makeすべての.cppファイルをコンパイルしてリンクするために入力します。次に、入力して入力する必要がuser/run/あります./run.sh values.txt GDBでデバッグするには、に移動しuser/runて入力gdb ../project/Build/bin/Projectし、実行する必要がありますrun -Project INPUT/inputfile.txt。ただし、を使用して変数の値を出力しようとしていますp variablename。 ただし、メッセージが表示されますs1 = <value optimized out>。私はオンラインでいくつかの研究を行ってきましたが、-O0これを解決するには最適化せずにコンパイルする必要があるようです。しかし、どこに入力しますか?でCMakeLists?もしそうなら、どのCMakeLists?1つproject/Buildまたはproject/src/project?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.