設定したいコードの部分は次のとおりです。
void *sync(void *ptr) {
vector<short> gen = generate_sygnal();
デバッグ フラグを使用してプログラムをビルドします。gdb で行うことは次のとおりです。
(gdb) break daemon.cxx:sync
break daemon.cxx:sync
Breakpoint 1 at 0x804d080: file /home/username/projects/armd/complex/daemon/daemon.cxx, line 160.
(gdb) watch gen
watch gen
No symbol "gen" in current context.
(gdb) run
run
Starting program: /home/username/projects/armd/complex/build/daemon/daemon
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
2012/05/02 11:00:32 error: Cannot open configuration file /home/username/projects/armd/complex/build/daemon/armd.conf
[New Thread 0xb7fe7b40 (LWP 4329)]
2012/05/02 11:00:32 info: Listening on port 2000
/dev/ttyS0 port opened!
[New Thread 0xb77e6b40 (LWP 4330)]
[Switching to Thread 0xb77e6b40 (LWP 4330)]
Breakpoint 1, sync (ptr=0x8055108)
at /home/username/projects/armd/complex/daemon/daemon.cxx:160
160 void *sync(void *ptr) {
(gdb) watch gen
watch gen
No symbol "gen" in current context.
(gdb)
では、gdb で gen の値を確認するにはどうすればよいでしょうか? ベクトル値の完全なスタックが必要です。