こんにちはI-Rです。
ソフトウェア開発の業務において、ChatGPTを活用することで業務効率の向上が期待できます。
本記事では、ビルドエラーのログ解析についてご紹介します。
今回は、以下の条件に該当するケースを紹介します。
・ソースコードやビルドエラーログを目視だけで確認しても、原因の解析・特定に時間がかかるもの
・日常業務で発生する可能性が高いもの
※本記事ではログインありのChatGPT アカウント利用版を使用しています。
ログインなしのChatGPT ゲスト利用版の場合でも解析自体は可能ですが、
細かい出力内容の調整はできないので、 解析内容を調整したい場合は、
ログインありの状態で行う事を推奨します。
※本記事で使用した開発環境は Softune です。
1.全角文字の混入プログラムの解析
1.1 全角文字が混入したプログラム
#sample.c
extern int glb_a;
extern int glb_b1_buf[4];
extern int glb_b2_buf[4];
extern int glb_c;
extern int glb_d;
void sample_func(void)
{
int loop_num;
/* 変数Aの初期化 */
glb_a = 0;
/*** 配列変数Bの初期化 ***/
for(loop_num=0; loop_num < 4 ; loop_num++)
{
glb_b1_buf[loop_num] = 0xFF;
}
for(loop_num=0; loop_num < 3 ; loop_num++)
{
glb_b2_buf[loop_num] = 0xFF;
}
/* 変数Cの初期化 */
glb_c = 0;
/* 変数Dの初期化 */
glb_d = 0;
}今回紹介するケースは、ソースコードに全角文字が混入した事例です。
上記のソースコードの”{}”および”;”のいずれかが全角文字となっています。
本ケースは、コメント文を日本語で入力した直後に半角/全角の切り替えを忘れたまま入力を
続けてしまった場合に発生しやすいものです。
本ケースで特に注目すべき点は、半角文字と全角文字が一見しただけでは判別しにくいという点です。
今回は行数が少ない事と見るべき箇所を指定しているので、短時間で該当箇所を特定できた方もいるかもしれません。
しかし、これが数千行規模のソースコード、かつ事前情報がない状況であった場合、
原因の特定は非常に困難になると考えられます。
1.2 全角文字が混入したプログラムのビルド結果

上記のプログラムをビルドした結果、上記のビルドエラーログが出力されました。
全角入力文字が含まれていると思われる行にて、「認識できないトークンです。」という警告が出ています。
それ以降の行では、直前の行の構文エラーの影響により、本来は問題のない行にも
エラーや警告が連鎖的に出力されています。
上記のプログラムでは、問題のある行はわずか2行のみですが、実際にはそれ以上の行数で
エラーが発生しており、ログを確認しただけでは問題箇所の特定に時間を要すると考えられます。
以上の事から、今回のケースではソースコードやログだけを見て
原因となっている行を特定する事は容易ではありません。
1.3 ChatGPTにプログラムの解析を依頼した際のプロンプト

ChatGPTにソースコード解析を依頼するには、命令(プロンプト)が必要です。
今回はその命令を上記の形式で与えました。
出力形式を調整したいため、解析の命令に加えて出力形式の命令も合わせて行っております。
1.4 ChatGPTによる出力(ビルドエラーログの解析結果)

上記のプロンプトでビルドエラーのログを読み込ませた結果、上記のプログラムから
問題のある行について問題1、問題2と番号を付けて目印を付けてくれます。
また、どの問題がどのエラーの原因となっているかも解説してくれます。
エラーの原因を全て解説してくれることにより、エラーの原因の見落としを防げると思います。
1.5 ChatGPTによる出力(ソースコードの問題箇所)

上記のプロンプトでプログラムを ChatGPT に読み込ませた結果、問題のある行に対して、
問題1、問題2とラベリングして表示してくれました。
問題の箇所については、概要をコメント文で表示してくれるので、内容も把握しやすいです。
これにより、問題点を一目で把握できるようになり、エラー解析作業の大幅な時間短縮に繋がりました。
2.後書き
今回はChatGPTのエラーログの解析を行いました。
今回紹介したケースのように、原因そのものは単純でも、エラーメッセージだけを見ると
複雑に見えるケースは少なからず発生します。
ChatGPT にプログラムとエラーログを解析させることで、
- エラーメッセージの原因
- 具体的に問題のある箇所
といった点をまとめて解析でき、調査時間を大幅に短縮できます。
そのまま鵜呑みにはできませんが、問題の解決や調査の補助としては、
非常に役立つと思います。
また、出力する際は事前に見やすいフォーマットを作成しておけば、
解析がより効率的に進むと思います。
本記事がChatGPTの業務効率化の参考になれば幸いです。
関連記事
-
2021年度新卒社員が入社後から現在まで、1年間の自身の経験を振り返ってみた。新入社員MOZUの場合。~後編~
こんにちは、2021年度に新卒で入社したMOZUです。前回は、入社後の研修~最初のプロジェク...
公開日:2022.08.26 更新日:2022.09.01
-
これからはんだ付けを始める方へ ~ソフトウェア屋が初めてはんだ付けをやってみた~ 第1回:はんだ、はんだごて
私自身、ソフトウェア屋ということではんだ付けとは無縁の業務を行ってきましたが、最近ラズベリー...
公開日:2024.10.18 更新日:2024.10.18
-
2021年度新卒社員が入社後から現在まで、1年間の自身の経験を振り返ってみた。新入社員MOZUの場合。~前編~
初めまして。2021年度に新卒で入社したMOZUです。 今回は、私が入社してから1年で行った...
公開日:2022.07.08 更新日:2022.07.08
-
ITエンジニアにおすすめの本・Webサイト・アプリ – 2023
「新人向けに限らず、『ITエンジニアにおすすめ』」 という観点で、過去に読んでためになった・...
公開日:2023.05.19 更新日:2023.05.26
-
初めまして!2023年4月に新卒で入社したINGKです。これから、入社してから現在までの経験...
公開日:2024.06.14 更新日:2024.06.14
-