2011-06-20 17 views
5

Debian için 7.2 ile çalıştı, ancak C++ 0x lambdas içine adım atmak mümkün görünmüyor.Gdb ile herhangi bir şans hata ayıklama lambdas?

+0

muhtemelen yanlış gitti tam olarak ne üzerinde durabilir g ++ veya gdb posta listesinde –

+0

üzerinde soran daha iyi kesici ağzına? – templatetypedef

+0

@templatetypedef Adım adım lambda fonksiyonuna giremedim. – piotr

cevap

4

Çok basit bir programda bir lambdaya adım atmayı başardım (ubuntu 10.04, gdb-7.1, gcc-4.6, -g bayraklı).

Ve burada bir oturum metni.

(gdb) br main 
Breakpoint 1 at 0x804869e: file hello.C, line 10. 
(gdb) r 
Starting program: /tmp/hello 

Breakpoint 1, main() at hello.C:10 
10   std::cout << "=========" << std::endl; 
(gdb) n 
========= 
15   })(sayhello); 
(gdb) s 
operator() (this=0xbffff24f, f=0x8048614 <sayhello()>) at hello.C:12 
12   std::cout << "---------" << std::endl; 
(gdb) n 
--------- 
13   f(); 
(gdb) s 
sayhello() at hello.C:5 
5   std::cout << "Hello world" << std::endl; 
(gdb) n 
Hello world 
6  } 
(gdb) s 
operator() (this=0xbffff24f, f=0x8048614 <sayhello()>) at hello.C:14 
14   std::cout << "---------" << std::endl; 
(gdb) n 
--------- 
15   })(sayhello); 
(gdb) n 
main() at hello.C:16 
16  } 
+0

+1 İlginç, sonuçlarınızı kontrol edeceğim. – piotr

+1

Bunu btw yakalamalarına erişmek için lambda içinde kullanmalıyım. Aynı yakalanan sembolü kullanarak çöp verir. – piotr

İlgili konular