Sign in Join
Wiki copytemporary

Creating a Backtrace with GDB/ja: what changed

Revision 1 to 2. 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+
123## なぜバックトレースを作るのか
224
325### バグレポートの作成
426
5-バグレポートを作るときに、バックトレースは非常に役立つことがあります。それらは間違いなく、バグがより速くフィックスされる可能性を高めるでしょう。
27+バグレポートを作るときに、バックトレースは非常に役立つことがあります。それらは間違いなく、バグがより速くフィックスされる可能性を高めるでしょう。
628
729### 自分で問題を発見するのを助ける
830
9-バックトレースはあなた自身のプログラムに関する問題を見つけやすくします。しばしば早い段階で、問題を暴露します。
31+バックトレースはあなた自身のプログラムに関する問題を見つけやすくします。しばしば早い段階で、問題を暴露します。
1032
1133### まさしく明瞭な楽しみ!!
1234
13-バックトレースを作ることは単純に楽しいです!
35+バックトレースを作ることは単純に楽しいです!
1436
15-もっとも真剣にあなたが、バックトレースを作成する他の理由を持っているのなら、ここにそれを加えてください。
37+もっとも真剣にあなたが、バックトレースを作成する他の理由を持っているのなら、ここにそれを加えてください。
1638
1739## バックトレースを作成する
1840
19-GDB (Gnu DeBugger)を使ってバックトレースを作成するには:
41+GDB (Gnu DeBugger)を使ってバックトレースを作成するには:
2042
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となっているはずです。
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となっているはずです。
2244
23-1. GDBは環境変数PATHに含まれている必要があります。もしそうでないなら、次の例を参考にコマンドプロンプトでタイプしてください。: set PATH=%PATH%;c:\lazarus\mingw\bin\\
45+ 1. GDBは環境変数PATHに含まれている必要があります。もしそうでないなら、次の例を参考にコマンドプロンプトでタイプしてください。: set PATH=%PATH%;c:\lazarus\mingw\bin\
2446
25-1. プログラムのデバッグを行うためにはかならず、実行ファイルにデバッグ情報が含まれていなければなりません。もしあなたが"strip", "upx", "Xs" といった実行ファイル圧縮プログラムを使用していると、デバッグは行えません。
47+ 1. プログラムのデバッグを行うためにはかならず、実行ファイルにデバッグ情報が含まれていなければなりません。もしあなたが"strip", "upx", "Xs" といった実行ファイル圧縮プログラムを使用していると、デバッグは行えません。
2648
2749### Windows
2850
29-1\. MS-DOSプロンプトを開いてください。
30-
31-2\. あなたの実行ファイルがあるドライブに移動します:
32-
33-`C: {press enter}`
51+1\. MS-DOSプロンプトを開いてください。
3452
35-3\. 実行ファイルがあるディレクトリに移動します:
53+2\. あなたの実行ファイルがあるドライブに移動します:
54+```
55+C: {press enter}
56+```
3657
37-`cd \myprograms\Project1 {press enter}`
58+3\. 実行ファイルがあるディレクトリに移動します:
59+```
60+cd \myprograms\Project1 {press enter}
61+```
3862
39-4\. GDBを使ってあなたのプログラムをロードします:'''
63+4\. GDBを使ってあなたのプログラムをロードします:****
64+```
65+gdb Project1.exe {press enter}
66+```
4067
41-`gdb Project1.exe {press enter}`
68+
4269
4370### Linux/BSD
4471
45-1\. あなたのお気に入りの端末プログラムを起動してください
46-
47-2\. 実行ファイルのあるディレクトリに移動します:
72+1\. あなたのお気に入りの端末プログラムを起動してください
4873
49-`cd $HOME/myprograms/project1 {press enter}`
74+2\. 実行ファイルのあるディレクトリに移動します:
75+```
76+cd $HOME/myprograms/project1 {press enter}
77+```
5078
51-3\. GDBを使ってあなたのプログラムをロードします:'''
79+3\. GDBを使ってあなたのプログラムをロードします:****
80+```
81+gdb project1 {press enter}
82+```
5283
53-`gdb project1 {press enter}`
84+
5485
5586### Mac OS X
5687
5788#### Mac OS X: GUIアプリケーション
5889
59-1\. もしまだ行ってないなら、まず[[Application Bundle/ja|アプリケーションバンドルを]]作ります (Project / Project Options / Application / Create Application Bundle)
60-
61-2\. 好きな端末エミュレータ(訳注: 標準の Terminal.app でも大丈夫です)を起動します。
62-
63-3\. アプリケーションバンドルが存在するディレクトリに移動します:
90+1\. もしまだ行ってないなら、まず[[Application Bundle/ja|アプリケーションバンドル]]を作ります (Project / Project Options / Application / Create Application Bundle)
6491
65-`cd $HOME/myprograms/project1 {press enter}`
92+2\. 好きな端末エミュレータ(訳注: 標準の Terminal.app でも大丈夫です)を起動します。
6693
67-4\. プログラムを GDB を使ってロードします:
94+3\. アプリケーションバンドルが存在するディレクトリに移動します:
95+```
96+cd $HOME/myprograms/project1 {press enter}
97+```
6898
69-`gdb project1.app/Contents/MacOS/project1 {press enter}`
99+4\. プログラムを GDB を使ってロードします:
100+```
101+gdb project1.app/Contents/MacOS/project1 {press enter}
102+```
70103
71104#### Mac OS X: GUIではない、コマンドラインプログラム
72105
73-1\. 好きな端末エミュレータ(訳注: 標準の Terminal.app でも大丈夫です)を起動します。
74-
75-2\. 実行ファイルが存在するディレクトリに移動します:
76-
77-`cd $HOME/myprograms/project1 {press enter}`
106+1\. 好きな端末エミュレータ(訳注: 標準の Terminal.app でも大丈夫です)を起動します。
78107
79-3\. プログラムを GDB を使ってロードします:
108+2\. 実行ファイルが存在するディレクトリに移動します:
109+```
110+cd $HOME/myprograms/project1 {press enter}
111+```
80112
81-`gdb project1 {press enter}`
113+3\. プログラムを GDB を使ってロードします:
114+```
115+gdb project1 {press enter}
116+```
82117
83118### あなたは次のようなプロンプトを目にするはずです:
84-
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) _`
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+```
93129
94130### 例外が発生している場合GDBは停止しています
95-
96-`(gdb) break fpc_raiseexception {press enter}`
131+```
132+(gdb) break fpc_raiseexception {press enter}
133+```
97134
98135### それではあなたのプログラムを実行します:
99-
100-`(gdb) run {press enter}`
101-
102-クラッシュするか、エラーが発生するまで、貴方のプログラムは通常どおり動作するでしょう。
103-
104-あなたのプログラムが通常のエラー、「アクセス違反」や「ゼロ除算」によってクラッシュすると、プログラムは停止し、反応がなくなり、描画も行われなくなります。これはGDBがエラーを検出して、あなたがどうすればいいか指示してくれるのを待っているからです。
105-
106-MS-DOSウィンドウかターミナルに切替えていると、このようなスクリーンが表示されるはずです。
107-
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) _`
136+```
137+(gdb) run {press enter}
138+```
112139
113-バックトレースを作成するために:
140+クラッシュするか、エラーが発生するまで、貴方のプログラムは通常どおり動作するでしょう。
114141
115-`backtrace {press enter}`
142+あなたのプログラムが通常のエラー、「アクセス違反」や「ゼロ除算」によってクラッシュすると、プログラムは停止し、反応がなくなり、描画も行われなくなります。これはGDBがエラーを検出して、あなたがどうすればいいか指示してくれるのを待っているからです。
116143
117-もしくは
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+```
118151
119-`bt {press enter}`
152+バックトレースを作成するために:
153+```
154+backtrace {press enter}
155+```
120156
121-というようにタイプしてください。
157+もしくは
158+```
159+bt {press enter}
160+```
122161
123-続いて、このようにスクリーンに表示されます。
162+というようにタイプしてください。
124163
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) _`
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+```
146188
147-*注意: もしバックトレースが長い場合、あなたがプロンプト上でEnterキーを押せば次のページが表示されます。全てが表示されるまでそのように続きます。*
189+_注意: もしバックトレースが長い場合、あなたがプロンプト上でEnterキーを押せば次のページが表示されます。全てが表示されるまでそのように続きます。_
148190
149191表示された情報にはエラーが発生するまでのイベントのシークエンスが表示されています。[[Creating a Backtrace with GDB|Understanding a Backtrace]]
150192
151-GDB(とあなたのプログラム)から抜けるためには次のようにタイプしてください:
152-
153-`quit {press enter}`
154-
155-処理を続けるならば次のようにタイプしてください:
193+GDB(とあなたのプログラム)から抜けるためには次のようにタイプしてください:
194+```
195+quit {press enter}
196+```
156197
157-`cont {press enter}`
198+処理を続けるならば次のようにタイプしてください:
199+```
200+cont {press enter}
201+```
158202
159-*ヒント:自分のプログラムを走らせているとき、すばやくGDBに処理を移すには、Ctrl+CをターミナルやMS-DOSプロンプト上で押してください*
203+_ヒント:自分のプログラムを走らせているとき、すばやくGDBに処理を移すには、Ctrl+CをターミナルやMS-DOSプロンプト上で押してください_
160204
161205## 端末の外部やメールからバックトレースを取得する
162206
163-現在ターミナル(またはMS-DOSプロンプト)に出力されたバックトレースをメールに取り込むにはどうしたら良いでしょうか。それにはわたしの知る限り以下の二つの方法があります。
164-
165-1. ターミナル(またはMS-DOSプロンプト)上でコピー&ペーストを行う。
166-2. 次のようにしてgdbの出力をリダイレクトする:
207+現在ターミナル(またはMS-DOSプロンプト)に出力されたバックトレースをメールに取り込むにはどうしたら良いでしょうか。それにはわたしの知る限り以下の二つの方法があります。
167208
168-`gdb project1 > output.txt`
209+ 1. ターミナル(またはMS-DOSプロンプト)上でコピー&ペーストを行う。
210+ 2. 次のようにしてgdbの出力をリダイレクトする:
169211
170-そしてこのファイルを開いてコピー&ペーストであなたのメールに取り込みます。 
212+```
213+gdb project1 > output.txt
214+```
171215
172-警告: 2番目の方法はあなたが真っ暗闇の中でタイプすることを必要とします。すなわち、あなたはスクリーンに何も表示されていない状態で、プログラムを走らせるために「run」をタイプし、バックトレースを作成するために「backtrace」をタイプしなければなりません。
216+そしてこのファイルを開いてコピー&ペーストであなたのメールに取り込みます。
173217
174-例外: Linuxでは以下のコマンドを用いることによってコマンドを参照しながら行うことが可能です。
218+警告: 2番目の方法はあなたが真っ暗闇の中でタイプすることを必要とします。すなわち、あなたはスクリーンに何も表示されていない状態で、プログラムを走らせるために「run」をタイプし、バックトレースを作成するために「backtrace」をタイプしなければなりません。
175219
176-`touch output.txt & tail output.txt -f & gdb project1 > output.txt`
220+例外: Linuxでは以下のコマンドを用いることによってコマンドを参照しながら行うことが可能です。
221+```
222+touch output.txt & tail output.txt -f & gdb project1 > output.txt
223+```
177224
178225## Understanding a Backtrace
179226
180-TODO: Write Me :)
181-
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)`
231-
232-This Backtrace was produced using this code:
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+```
233279
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;`
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+```
242291
243292---
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
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).*

Back to history