Sign in Join
Wiki copytemporary

Creating a Backtrace with GDB/ja: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-**日本語版メニュー**
2----
3-[[Main Page/ja|メインページ]] \- [[Lazarus Documentation/ja|Lazarus Documentation日本語版]] \- [[Japanese Localization Notes|翻訳ノート]] \- [[Bug Tracking/ja|日本語障害情報]]
4-
5-## Contents
6-
7- * 1 なぜバックトレースを作るのか
8- * 1.1 バグレポートの作成
9- * 1.2 自分で問題を発見するのを助ける
10- * 1.3 まさしく明瞭な楽しみ!!
11- * 2 バックトレースを作成する
12- * 2.1 Windows
13- * 2.2 Linux/BSD
14- * 2.3 Mac OS X
15- * 2.3.1 Mac OS X: GUIアプリケーション
16- * 2.3.2 Mac OS X: GUIではない、コマンドラインプログラム
17- * 2.4 あなたは次のようなプロンプトを目にするはずです:
18- * 2.5 例外が発生している場合GDBは停止しています
19- * 2.6 それではあなたのプログラムを実行します:
20- * 3 端末の外部やメールからバックトレースを取得する
21- * 4 Understanding a Backtrace
22-
231## なぜバックトレースを作るのか
242
253### バグレポートの作成
264
27-バグレポートを作るときに、バックトレースは非常に役立つことがあります。それらは間違いなく、バグがより速くフィックスされる可能性を高めるでしょう。
5+バグレポートを作るときに、バックトレースは非常に役立つことがあります。それらは間違いなく、バグがより速くフィックスされる可能性を高めるでしょう。
286
297### 自分で問題を発見するのを助ける
308
31-バックトレースはあなた自身のプログラムに関する問題を見つけやすくします。しばしば早い段階で、問題を暴露します。
9+バックトレースはあなた自身のプログラムに関する問題を見つけやすくします。しばしば早い段階で、問題を暴露します。
3210
3311### まさしく明瞭な楽しみ!!
3412
35-バックトレースを作ることは単純に楽しいです!
13+バックトレースを作ることは単純に楽しいです!
3614
37-もっとも真剣にあなたが、バックトレースを作成する他の理由を持っているのなら、ここにそれを加えてください。
15+もっとも真剣にあなたが、バックトレースを作成する他の理由を持っているのなら、ここにそれを加えてください。
3816
3917## バックトレースを作成する
4018
41-GDB (Gnu DeBugger)を使ってバックトレースを作成するには:
19+GDB (Gnu DeBugger)を使ってバックトレースを作成するには:
4220
43- 1. あなたは [GDB](<http://www.gnu.org/software/gdb/gdb.html>)というプログラムを持っている必要があります。これは多くのUNIX系列のOSにインストールされていますし、もしあなたがLazarusやfpcのWindowsバージョンをダウンロードしてあるなら、GDBはすでに同時にインストールされているでしょう。Lazarus上で規定のデバッガを設定してください。メニューを Environment->Debugger Optionsと辿って、General Tabを見てください。Windows用のGDBなら、初期設定のパスはc:\lazarus\mingw\bin\gdb.exeとなっているはずです。
21+1. あなたは [GDB](http://www.gnu.org/software/gdb/gdb.html)というプログラムを持っている必要があります。これは多くのUNIX系列のOSにインストールされていますし、もしあなたがLazarusやfpcのWindowsバージョンをダウンロードしてあるなら、GDBはすでに同時にインストールされているでしょう。Lazarus上で規定のデバッガを設定してください。メニューを Environment-\>Debugger Optionsと辿って、General Tabを見てください。Windows用のGDBなら、初期設定のパスはc:\lazarus\mingw\bin\gdb.exeとなっているはずです。
4422
45- 1. GDBは環境変数PATHに含まれている必要があります。もしそうでないなら、次の例を参考にコマンドプロンプトでタイプしてください。: set PATH=%PATH%;c:\lazarus\mingw\bin\
23+1. GDBは環境変数PATHに含まれている必要があります。もしそうでないなら、次の例を参考にコマンドプロンプトでタイプしてください。: set PATH=%PATH%;c:\lazarus\mingw\bin\\
4624
47- 1. プログラムのデバッグを行うためにはかならず、実行ファイルにデバッグ情報が含まれていなければなりません。もしあなたが"strip", "upx", "Xs" といった実行ファイル圧縮プログラムを使用していると、デバッグは行えません。
25+1. プログラムのデバッグを行うためにはかならず、実行ファイルにデバッグ情報が含まれていなければなりません。もしあなたが"strip", "upx", "Xs" といった実行ファイル圧縮プログラムを使用していると、デバッグは行えません。
4826
4927### Windows
5028
51-1\. MS-DOSプロンプトを開いてください。
29+1\. MS-DOSプロンプトを開いてください。
5230
53-2\. あなたの実行ファイルがあるドライブに移動します:
54-```
55-C: {press enter}
56-```
31+2\. あなたの実行ファイルがあるドライブに移動します:
5732
58-3\. 実行ファイルがあるディレクトリに移動します:
59-```
60-cd \myprograms\Project1 {press enter}
61-```
33+`C: {press enter}`
6234
63-4\. GDBを使ってあなたのプログラムをロードします:****
64-```
65-gdb Project1.exe {press enter}
66-```
35+3\. 実行ファイルがあるディレクトリに移動します:
6736
68-
37+`cd \myprograms\Project1 {press enter}`
6938
39+4\. GDBを使ってあなたのプログラムをロードします:'''
40+
41+`gdb Project1.exe {press enter}`
42+
7043### Linux/BSD
7144
72-1\. あなたのお気に入りの端末プログラムを起動してください
45+1\. あなたのお気に入りの端末プログラムを起動してください
7346
74-2\. 実行ファイルのあるディレクトリに移動します:
75-```
76-cd $HOME/myprograms/project1 {press enter}
77-```
47+2\. 実行ファイルのあるディレクトリに移動します:
7848
79-3\. GDBを使ってあなたのプログラムをロードします:****
80-```
81-gdb project1 {press enter}
82-```
49+`cd $HOME/myprograms/project1 {press enter}`
8350
84-
51+3\. GDBを使ってあなたのプログラムをロードします:'''
8552
53+`gdb project1 {press enter}`
54+
8655### Mac OS X
8756
8857#### Mac OS X: GUIアプリケーション
8958
90-1\. もしまだ行ってないなら、まず[[Application Bundle/ja|アプリケーションバンドル]]を作ります (Project / Project Options / Application / Create Application Bundle)
59+1\. もしまだ行ってないなら、まず[[Application Bundle/ja|アプリケーションバンドルを]]作ります (Project / Project Options / Application / Create Application Bundle)
9160
92-2\. 好きな端末エミュレータ(訳注: 標準の Terminal.app でも大丈夫です)を起動します。
61+2\. 好きな端末エミュレータ(訳注: 標準の Terminal.app でも大丈夫です)を起動します。
9362
94-3\. アプリケーションバンドルが存在するディレクトリに移動します:
95-```
96-cd $HOME/myprograms/project1 {press enter}
97-```
63+3\. アプリケーションバンドルが存在するディレクトリに移動します:
9864
99-4\. プログラムを GDB を使ってロードします:
100-```
101-gdb project1.app/Contents/MacOS/project1 {press enter}
102-```
65+`cd $HOME/myprograms/project1 {press enter}`
10366
67+4\. プログラムを GDB を使ってロードします:
68+
69+`gdb project1.app/Contents/MacOS/project1 {press enter}`
70+
10471#### Mac OS X: GUIではない、コマンドラインプログラム
10572
106-1\. 好きな端末エミュレータ(訳注: 標準の Terminal.app でも大丈夫です)を起動します。
73+1\. 好きな端末エミュレータ(訳注: 標準の Terminal.app でも大丈夫です)を起動します。
10774
108-2\. 実行ファイルが存在するディレクトリに移動します:
109-```
110-cd $HOME/myprograms/project1 {press enter}
111-```
75+2\. 実行ファイルが存在するディレクトリに移動します:
11276
113-3\. プログラムを GDB を使ってロードします:
114-```
115-gdb project1 {press enter}
116-```
77+`cd $HOME/myprograms/project1 {press enter}`
11778
79+3\. プログラムを GDB を使ってロードします:
80+
81+`gdb project1 {press enter}`
82+
11883### あなたは次のようなプロンプトを目にするはずです:
119-```
120-GNU gdb 6.3.50.20050217-cvs
121- Copyright 2004 Free Software Foundation, Inc.
122- GDB is free software, covered by the GNU General Public License, and you are
123- welcome to change it and/or distribute copies of it under certain conditions.
124- Type "show copying" to see the conditions.
125- There is absolutely no warranty for GDB. Type "show warranty" for details.
126- This GDB was configured as "i686-pc-linux-gnu".
127- (gdb) _
128-```
12984
85+`GNU gdb 6.3.50.20050217-cvs`\
86+`Copyright 2004 Free Software Foundation, Inc.`\
87+`GDB is free software, covered by the GNU General Public License, and you are`\
88+`welcome to change it and/or distribute copies of it under certain conditions.`\
89+`Type "show copying" to see the conditions.`\
90+`There is absolutely no warranty for GDB.  Type "show warranty" for details.`\
91+`This GDB was configured as "i686-pc-linux-gnu".`\
92+`(gdb) _`
93+
13094### 例外が発生している場合GDBは停止しています
131-```
132-(gdb) break fpc_raiseexception {press enter}
133-```
13495
96+`(gdb) break fpc_raiseexception {press enter}`
97+
13598### それではあなたのプログラムを実行します:
136-```
137-(gdb) run {press enter}
138-```
13999
140-クラッシュするか、エラーが発生するまで、貴方のプログラムは通常どおり動作するでしょう。
100+`(gdb) run {press enter}`
141101
142-あなたのプログラムが通常のエラー、「アクセス違反」や「ゼロ除算」によってクラッシュすると、プログラムは停止し、反応がなくなり、描画も行われなくなります。これはGDBがエラーを検出して、あなたがどうすればいいか指示してくれるのを待っているからです。
102+クラッシュするか、エラーが発生するまで、貴方のプログラムは通常どおり動作するでしょう。
143103
144-MS-DOSウィンドウかターミナルに切替えていると、このようなスクリーンが表示されるはずです。
145-```
146-Program received signal SIGFPE, Arithmetic exception.
147- 0x080733aa in TFORM1__BUTTON1CLICK (SENDER=0x403d8bd8, this=0x403d77d8) at unit1.pas:36
148- Current language: auto; currently pascal
149- (gdb) _
150-```
104+あなたのプログラムが通常のエラー、「アクセス違反」や「ゼロ除算」によってクラッシュすると、プログラムは停止し、反応がなくなり、描画も行われなくなります。これはGDBがエラーを検出して、あなたがどうすればいいか指示してくれるのを待っているからです。
151105
152-バックトレースを作成するために:
153-```
154-backtrace {press enter}
155-```
106+MS-DOSウィンドウかターミナルに切替えていると、このようなスクリーンが表示されるはずです。
156107
157-もしくは
158-```
159-bt {press enter}
160-```
108+`Program received signal SIGFPE, Arithmetic exception.`\
109+`0x080733aa in TFORM1__BUTTON1CLICK (SENDER=0x403d8bd8, this=0x403d77d8) at unit1.pas:36`\
110+`Current language:  auto; currently pascal`\
111+`(gdb) _`
161112
162-というようにタイプしてください。
113+バックトレースを作成するために:
163114
164-続いて、このようにスクリーンに表示されます。
165-```
166-#0 0x080733aa in TFORM1__BUTTON1CLICK (SENDER=0x403d8bd8, this=0x403d77d8) at unit1.pas:36
167- #1 0x080ecd78 in TCONTROL__CLICK (this=0x403d8bd8) at control.inc:1768
168- #2 0x081274bd in TBUTTONCONTROL__CLICK (this=0x403d8bd8) at buttoncontrol.inc:57
169- #3 0x08129171 in TCUSTOMBUTTON__CLICK (this=0x403d8bd8) at buttons.inc:186
170- #4 0x08129198 in TCUSTOMBUTTON__WMDEFAULTCLICKED (MESSAGE={MSG = 1031, WPARAM =
171- 136821192, LPARAM = -1073747812, RESULT = 1075866658, WPARAMLO = 47560,
172- WPARAMHI = 2087, LPARAMLO = 59548, LPARAMHI = 49151, RESULTLO = 27682, RESULTHI = 16416},
173- this=0x403d8bd8) at buttons.inc:198
174- #5 0x0805bbf7 in SYSTEM_TOBJECT_$__DISPATCH$formal ()
175- #6 0x080ec6e0 in TCONTROL__WNDPROC (THEMESSAGE={MSG = 1031, WPARAM = 136821192,
176- LPARAM = -1073747812, RESULT = 1075866658, WPARAMLO = 47560, WPARAMHI = 2087,
177- LPARAMLO = 59548, PARAMHI = 49151, RESULTLO = 27682, RESULTHI = 16416},
178- this=0x403d8bd8) at control.inc:1447
179- #7 0x080e4ed9 in TWINCONTROL__WNDPROC (MESSAGE={MSG = 1031, WPARAM = 136821192,
180- LPARAM = -1073747812, RESULT = 1075866658, WPARAMLO = 47560, WPARAMHI = 2087,
181- LPARAMLO = 59548, PARAMHI = 49151, RESULTLO = 27682, RESULTHI = 16416},
182- this=0x403d8bd8) at wincontrol.inc:2154
183- #8 0x08161955 in DELIVERMESSAGE (TARGET=0x403d8bd8, AMESSAGE=void) at gtkproc.inc:3242
184- #9 0x0818897c in GTKWSBUTTON_CLICKED (AWIDGET=0x8285380, AINFO=0x40453794) at gtkwsbuttons.pp:112
185- ... { Truncated for simplicity} Complete listing [[Creating a Backtrace with GDB\Backtrace|here]]
186- (gdb) _
187-```
115+`backtrace {press enter}`
188116
189-_注意: もしバックトレースが長い場合、あなたがプロンプト上でEnterキーを押せば次のページが表示されます。全てが表示されるまでそのように続きます。_
117+もしくは
190118
119+`bt {press enter}`
120+
121+というようにタイプしてください。
122+
123+続いて、このようにスクリーンに表示されます。
124+
125+`#0  0x080733aa in TFORM1__BUTTON1CLICK (SENDER=0x403d8bd8, this=0x403d77d8) at unit1.pas:36`\
126+`#1  0x080ecd78 in TCONTROL__CLICK (this=0x403d8bd8) at control.inc:1768`\
127+`#2  0x081274bd in TBUTTONCONTROL__CLICK (this=0x403d8bd8) at buttoncontrol.inc:57`\
128+`#3  0x08129171 in TCUSTOMBUTTON__CLICK (this=0x403d8bd8) at buttons.inc:186`\
129+`#4  0x08129198 in TCUSTOMBUTTON__WMDEFAULTCLICKED (MESSAGE={MSG = 1031, WPARAM = `\
130+`        136821192, LPARAM = -1073747812, RESULT = 1075866658, WPARAMLO = 47560, `\
131+`        WPARAMHI = 2087, LPARAMLO = 59548, LPARAMHI = 49151, RESULTLO = 27682, RESULTHI = 16416}, `\
132+`        this=0x403d8bd8) at buttons.inc:198`\
133+`#5  0x0805bbf7 in SYSTEM_TOBJECT_$__DISPATCH$formal ()`\
134+`#6  0x080ec6e0 in TCONTROL__WNDPROC (THEMESSAGE={MSG = 1031, WPARAM = 136821192, `\
135+`        LPARAM = -1073747812, RESULT = 1075866658, WPARAMLO = 47560, WPARAMHI = 2087, `\
136+`        LPARAMLO = 59548,  PARAMHI = 49151, RESULTLO = 27682, RESULTHI = 16416}, `\
137+`        this=0x403d8bd8) at control.inc:1447 `\
138+`#7  0x080e4ed9 in TWINCONTROL__WNDPROC (MESSAGE={MSG = 1031, WPARAM = 136821192, `\
139+`        LPARAM = -1073747812, RESULT = 1075866658, WPARAMLO = 47560, WPARAMHI = 2087, `\
140+`        LPARAMLO = 59548,  PARAMHI = 49151, RESULTLO = 27682, RESULTHI = 16416}, `\
141+`        this=0x403d8bd8) at wincontrol.inc:2154`\
142+`#8  0x08161955 in DELIVERMESSAGE (TARGET=0x403d8bd8, AMESSAGE=void) at gtkproc.inc:3242`\
143+`#9  0x0818897c in GTKWSBUTTON_CLICKED (AWIDGET=0x8285380, AINFO=0x40453794) at gtkwsbuttons.pp:112`\
144+`... { Truncated for simplicity} Complete listing `[[Creating a Backtrace with GDB\Backtrace|here]]\
145+`(gdb) _`
146+
147+*注意: もしバックトレースが長い場合、あなたがプロンプト上でEnterキーを押せば次のページが表示されます。全てが表示されるまでそのように続きます。*
148+
191149表示された情報にはエラーが発生するまでのイベントのシークエンスが表示されています。[[Creating a Backtrace with GDB|Understanding a Backtrace]]
192150
193-GDB(とあなたのプログラム)から抜けるためには次のようにタイプしてください:
194-```
195-quit {press enter}
196-```
151+GDB(とあなたのプログラム)から抜けるためには次のようにタイプしてください:
197152
198-処理を続けるならば次のようにタイプしてください:
199-```
200-cont {press enter}
201-```
153+`quit {press enter}`
202154
203-_ヒント:自分のプログラムを走らせているとき、すばやくGDBに処理を移すには、Ctrl+CをターミナルやMS-DOSプロンプト上で押してください_
155+処理を続けるならば次のようにタイプしてください:
204156
157+`cont {press enter}`
158+
159+*ヒント:自分のプログラムを走らせているとき、すばやくGDBに処理を移すには、Ctrl+CをターミナルやMS-DOSプロンプト上で押してください*
160+
205161## 端末の外部やメールからバックトレースを取得する
206162
207-現在ターミナル(またはMS-DOSプロンプト)に出力されたバックトレースをメールに取り込むにはどうしたら良いでしょうか。それにはわたしの知る限り以下の二つの方法があります。
163+現在ターミナル(またはMS-DOSプロンプト)に出力されたバックトレースをメールに取り込むにはどうしたら良いでしょうか。それにはわたしの知る限り以下の二つの方法があります。
208164
209- 1. ターミナル(またはMS-DOSプロンプト)上でコピー&ペーストを行う。
210- 2. 次のようにしてgdbの出力をリダイレクトする:
165+1. ターミナル(またはMS-DOSプロンプト)上でコピー&ペーストを行う。
166+2. 次のようにしてgdbの出力をリダイレクトする:
211167
212-```
213-gdb project1 > output.txt
214-```
168+`gdb project1 > output.txt`
215169
216-そしてこのファイルを開いてコピー&ペーストであなたのメールに取り込みます。
170+そしてこのファイルを開いてコピー&ペーストであなたのメールに取り込みます。 
217171
218-警告: 2番目の方法はあなたが真っ暗闇の中でタイプすることを必要とします。すなわち、あなたはスクリーンに何も表示されていない状態で、プログラムを走らせるために「run」をタイプし、バックトレースを作成するために「backtrace」をタイプしなければなりません。
172+警告: 2番目の方法はあなたが真っ暗闇の中でタイプすることを必要とします。すなわち、あなたはスクリーンに何も表示されていない状態で、プログラムを走らせるために「run」をタイプし、バックトレースを作成するために「backtrace」をタイプしなければなりません。
219173
220-例外: Linuxでは以下のコマンドを用いることによってコマンドを参照しながら行うことが可能です。
221-```
222-touch output.txt & tail output.txt -f & gdb project1 > output.txt
223-```
174+例外: Linuxでは以下のコマンドを用いることによってコマンドを参照しながら行うことが可能です。
224175
176+`touch output.txt & tail output.txt -f & gdb project1 > output.txt`
177+
225178## Understanding a Backtrace
226179
227-TODO: Write Me :)
228-```
229-(gdb) bt
230- #0 0x080733aa in TFORM1__BUTTON1CLICK (SENDER=0x403d8bd8, this=0x403d77d8) at unit1.pas:36
231- #1 0x080ecd78 in TCONTROL__CLICK (this=0x403d8bd8) at control.inc:1768
232- #2 0x081274bd in TBUTTONCONTROL__CLICK (this=0x403d8bd8) at buttoncontrol.inc:57
233- #3 0x08129171 in TCUSTOMBUTTON__CLICK (this=0x403d8bd8) at buttons.inc:186
234- #4 0x08129198 in TCUSTOMBUTTON__WMDEFAULTCLICKED (MESSAGE={MSG = 1031, WPARAM = 136821192,
235- LPARAM = -1073747812, RESULT = 1075866658, WPARAMLO = 47560, WPARAMHI = 2087,
236- LPARAMLO = 59548, LPARAMHI = 49151, RESULTLO = 27682, RESULTHI = 16416},
237- this=0x403d8bd8) at buttons.inc:198
238- #5 0x0805bbf7 in SYSTEM_TOBJECT_$__DISPATCH$formal ()
239- #6 0x080ec6e0 in TCONTROL__WNDPROC (THEMESSAGE={MSG = 1031, WPARAM = 136821192,
240- LPARAM = -1073747812, RESULT = 1075866658, WPARAMLO = 47560, WPARAMHI = 2087,
241- LPARAMLO = 59548, LPARAMHI = 49151, RESULTLO = 27682, RESULTHI = 16416},
242- this=0x403d8bd8) at control.inc:1447
243- #7 0x080e4ed9 in TWINCONTROL__WNDPROC (MESSAGE={MSG = 1031, WPARAM = 136821192,
244- LPARAM = -1073747812, RESULT = 1075866658, WPARAMLO = 47560, WPARAMHI = 2087,
245- LPARAMLO = 59548, LPARAMHI = 49151, RESULTLO = 27682, RESULTHI = 16416},
246- this=0x403d8bd8) at wincontrol.inc:2154
247- #8 0x08161955 in DELIVERMESSAGE (TARGET=0x403d8bd8, AMESSAGE=void) at gtkproc.inc:3242
248- #9 0x0818897c in GTKWSBUTTON_CLICKED (AWIDGET=0x8285380, AINFO=0x40453794) at gtkwsbuttons.pp:112
249- #10 0x401d7877 in gtk_marshal_NONE__NONE () from /usr/lib/libgtk-1.2.so.0
250- #11 0x40206e5a in gtk_signal_remove_emission_hook () from /usr/lib/libgtk-1.2.so.0
251- #12 0x4020616a in gtk_signal_set_funcs () from /usr/lib/libgtk-1.2.so.0
252- #13 0x40204234 in gtk_signal_emit () from /usr/lib/libgtk-1.2.so.0
253- #14 0x40176e1c in gtk_button_clicked () from /usr/lib/libgtk-1.2.so.0
254- #15 0x4017838a in gtk_button_get_relief () from /usr/lib/libgtk-1.2.so.0
255- #16 0x401d7877 in gtk_marshal_NONE__NONE () from /usr/lib/libgtk-1.2.so.0
256- #17 0x4020607b in gtk_signal_set_funcs () from /usr/lib/libgtk-1.2.so.0
257- #18 0x40204234 in gtk_signal_emit () from /usr/lib/libgtk-1.2.so.0
258- #19 0x40176d60 in gtk_button_released () from /usr/lib/libgtk-1.2.so.0
259- #20 0x40177d26 in gtk_button_get_relief () from /usr/lib/libgtk-1.2.so.0
260- #21 0x401d764d in gtk_marshal_BOOL__POINTER () from /usr/lib/libgtk-1.2.so.0
261- #22 0x4020619f in gtk_signal_set_funcs () from /usr/lib/libgtk-1.2.so.0
262- #23 0x40204234 in gtk_signal_emit () from /usr/lib/libgtk-1.2.so.0
263- #24 0x40239fd9 in gtk_widget_event () from /usr/lib/libgtk-1.2.so.0
264- #25 0x401d74d0 in gtk_propagate_event () from /usr/lib/libgtk-1.2.so.0
265- #26 0x401d65c1 in gtk_main_do_event () from /usr/lib/libgtk-1.2.so.0
266- #27 0x40065b44 in gdk_wm_protocols_filter () from /usr/lib/libgdk-1.2.so.0
267- #28 0x4003de75 in g_get_current_time () from /usr/lib/libglib-1.2.so.0
268- #29 0x4003e32c in g_get_current_time () from /usr/lib/libglib-1.2.so.0
269- #30 0x4003e4f5 in g_main_iteration () from /usr/lib/libglib-1.2.so.0
270- #31 0x401d6388 in gtk_main_iteration_do () from /usr/lib/libgtk-1.2.so.0
271- #32 0x080b4d26 in TGTKWIDGETSET__WAITMESSAGE (this=0x40473014) at gtkobject.inc:1427
272- #33 0x08070073 in TAPPLICATION__IDLE (this=0x4045b014) at application.inc:319
273- #34 0x08070ffb in TAPPLICATION__HANDLEMESSAGE (this=0x4045b014) at application.inc:827
274- #35 0x08071380 in RUNMESSAGE (parentfp=0xbffff5a4) at application.inc:933
275- #36 0x080712d7 in TAPPLICATION__RUN (this=0x4045b014) at application.inc:944
276- #37 0x080531c3 in main () at project1.lpr:13
277- (gdb)
278-```
180+TODO: Write Me :)
279181
280-This Backtrace was produced using this code:
281-```
282-30. procedure TForm1.Button1Click(Sender: TObject);
283- 31. var
284- 32. X, Y, Z: Integer;
285- 33. begin
286- 34. X := 0;
287- 35. Y := 0;
288- 36. Z := X div Y;
289- 37. end;
290-```
182+`(gdb) bt`\
183+`#0  0x080733aa in TFORM1__BUTTON1CLICK (SENDER=0x403d8bd8, this=0x403d77d8) at unit1.pas:36`\
184+`#1  0x080ecd78 in TCONTROL__CLICK (this=0x403d8bd8) at control.inc:1768`\
185+`#2  0x081274bd in TBUTTONCONTROL__CLICK (this=0x403d8bd8) at buttoncontrol.inc:57`\
186+`#3  0x08129171 in TCUSTOMBUTTON__CLICK (this=0x403d8bd8) at buttons.inc:186`\
187+`#4  0x08129198 in TCUSTOMBUTTON__WMDEFAULTCLICKED (MESSAGE={MSG = 1031, WPARAM = 136821192, `\
188+`        LPARAM = -1073747812, RESULT = 1075866658, WPARAMLO = 47560, WPARAMHI = 2087, `\
189+`        LPARAMLO = 59548, LPARAMHI = 49151, RESULTLO = 27682, RESULTHI = 16416}, `\
190+`        this=0x403d8bd8) at buttons.inc:198`\
191+`#5  0x0805bbf7 in SYSTEM_TOBJECT_$__DISPATCH$formal ()`\
192+`#6  0x080ec6e0 in TCONTROL__WNDPROC (THEMESSAGE={MSG = 1031, WPARAM = 136821192, `\
193+`        LPARAM = -1073747812, RESULT = 1075866658, WPARAMLO = 47560, WPARAMHI = 2087, `\
194+`        LPARAMLO = 59548, LPARAMHI = 49151, RESULTLO = 27682, RESULTHI = 16416}, `\
195+`        this=0x403d8bd8) at control.inc:1447`\
196+`#7  0x080e4ed9 in TWINCONTROL__WNDPROC (MESSAGE={MSG = 1031, WPARAM = 136821192, `\
197+`        LPARAM = -1073747812, RESULT = 1075866658, WPARAMLO = 47560, WPARAMHI = 2087, `\
198+`        LPARAMLO = 59548, LPARAMHI = 49151, RESULTLO = 27682, RESULTHI =   16416},`\
199+`        this=0x403d8bd8) at wincontrol.inc:2154`\
200+`#8  0x08161955 in DELIVERMESSAGE (TARGET=0x403d8bd8, AMESSAGE=void) at gtkproc.inc:3242`\
201+`#9  0x0818897c in GTKWSBUTTON_CLICKED (AWIDGET=0x8285380, AINFO=0x40453794) at gtkwsbuttons.pp:112`\
202+`#10 0x401d7877 in gtk_marshal_NONE__NONE () from /usr/lib/libgtk-1.2.so.0`\
203+`#11 0x40206e5a in gtk_signal_remove_emission_hook () from /usr/lib/libgtk-1.2.so.0`\
204+`#12 0x4020616a in gtk_signal_set_funcs () from /usr/lib/libgtk-1.2.so.0`\
205+`#13 0x40204234 in gtk_signal_emit () from /usr/lib/libgtk-1.2.so.0`\
206+`#14 0x40176e1c in gtk_button_clicked () from /usr/lib/libgtk-1.2.so.0`\
207+`#15 0x4017838a in gtk_button_get_relief () from /usr/lib/libgtk-1.2.so.0`\
208+`#16 0x401d7877 in gtk_marshal_NONE__NONE () from /usr/lib/libgtk-1.2.so.0`\
209+`#17 0x4020607b in gtk_signal_set_funcs () from /usr/lib/libgtk-1.2.so.0`\
210+`#18 0x40204234 in gtk_signal_emit () from /usr/lib/libgtk-1.2.so.0`\
211+`#19 0x40176d60 in gtk_button_released () from /usr/lib/libgtk-1.2.so.0`\
212+`#20 0x40177d26 in gtk_button_get_relief () from /usr/lib/libgtk-1.2.so.0`\
213+`#21 0x401d764d in gtk_marshal_BOOL__POINTER () from /usr/lib/libgtk-1.2.so.0`\
214+`#22 0x4020619f in gtk_signal_set_funcs () from /usr/lib/libgtk-1.2.so.0`\
215+`#23 0x40204234 in gtk_signal_emit () from /usr/lib/libgtk-1.2.so.0`\
216+`#24 0x40239fd9 in gtk_widget_event () from /usr/lib/libgtk-1.2.so.0`\
217+`#25 0x401d74d0 in gtk_propagate_event () from /usr/lib/libgtk-1.2.so.0`\
218+`#26 0x401d65c1 in gtk_main_do_event () from /usr/lib/libgtk-1.2.so.0`\
219+`#27 0x40065b44 in gdk_wm_protocols_filter () from /usr/lib/libgdk-1.2.so.0`\
220+`#28 0x4003de75 in g_get_current_time () from /usr/lib/libglib-1.2.so.0`\
221+`#29 0x4003e32c in g_get_current_time () from /usr/lib/libglib-1.2.so.0`\
222+`#30 0x4003e4f5 in g_main_iteration () from /usr/lib/libglib-1.2.so.0`\
223+`#31 0x401d6388 in gtk_main_iteration_do () from /usr/lib/libgtk-1.2.so.0`\
224+`#32 0x080b4d26 in TGTKWIDGETSET__WAITMESSAGE (this=0x40473014) at gtkobject.inc:1427`\
225+`#33 0x08070073 in TAPPLICATION__IDLE (this=0x4045b014) at application.inc:319`\
226+`#34 0x08070ffb in TAPPLICATION__HANDLEMESSAGE (this=0x4045b014) at application.inc:827`\
227+`#35 0x08071380 in RUNMESSAGE (parentfp=0xbffff5a4) at application.inc:933`\
228+`#36 0x080712d7 in TAPPLICATION__RUN (this=0x4045b014) at application.inc:944`\
229+`#37 0x080531c3 in main () at project1.lpr:13`\
230+`(gdb)`
291231
232+This Backtrace was produced using this code:
233+
234+`30. procedure TForm1.Button1Click(Sender: TObject);`\
235+`31. var`\
236+`32.  X, Y, Z: Integer;`\
237+`33. begin`\
238+`34.   X := 0;`\
239+`35.   Y := 0;`\
240+`36.   Z := X div Y;`\
241+`37. end;`
242+
292243---
293-*From the Free Pascal wiki, page "Creating a Backtrace with GDB/ja", as the Internet Archive kept it on 2025-01-17. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
244+*From the Free Pascal wiki, page "Creating a Backtrace with GDB/ja", as it stood on 2011-08-03 after a change by Chronos, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
245+Category: Debugging/ja

Back to history