17.00 - 17.05 - 標準GDBとTeradata C/C++ UDF Debuggerコマンドの相違 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)

Teradata C/C++ UDF DebuggerはGDBを拡張します。したがって、通常のデバッガで使用可能なすべてのGDBコマンドをUDFのデバッグでも使用できます。逆実行や特定のシステム呼び出し(forkやexecなど)の受け取りなど、一部の操作は超並列環境では安全(または可能)ではない点に留意してください。

Teradata C/C++ UDF Debuggerを使用する場合、いずれかのスレッドが、スレッドを停止する条件に遭遇すると、デバッガに接続されたすべてのスレッドが停止します。continueコマンドはすべてのスレッドを実行します(スレッドが一時停止されていない限り)。stepコマンドとnextコマンドは現在のスレッドのみを実行します。対照的に、一部のバージョンのGDBは、ブレークポイント(またはスレッドを停止する他の条件)に到達したスレッドのみを停止し、他のすべてのスレッドの実行は続行します。

kill

killコマンドは、UDFデバッグ セッションで発行された場合、通常のGDBセッションのように接続されたプロセスではなく、現在のデータベース リクエストを破棄します。複数のデータベース セッションがデバッグ セッションに結合される場合、killコマンドにより、結合された全セッションのアクティブなSQLリクエストのデバッグが終了しますが、現在のUDFのリクエストのみが破棄されます。データベース セッションは問合わせを再開して、そのUDFのデバッグを続行します。

info thread

info threadコマンドは、現在GDBによって把握されているすべてのスレッドを表示します。UDFのデバッグ時、[Target Id]フィールドに各スレッド セレクタを表示し、スレッドの現在の命令アドレスを示します。この情報は、1つのUDFがブレークポイントで停止した際、他のUDFを特定する場合に役立ちます。