2009-09-25 8 views
32

Czy istnieje pojedyncze polecenie w gdb, które może ustawić punkty przerwania dla wszystkich funkcji w danym pliku? Wiem o wyrażeniu regularnym rbreak, które ustawia punkty przerwania w pasujących funkcjach wyrażeń regularnych, ale mój plik nie ma ustalonych funkcji wzorzystych.gdb, ustaw punkt przerwania dla wszystkich funkcji w pliku

W inny sposób, istnieje polecenie, za pomocą którego można ustawić punkt przerwania na nazwę pliku. Co będzie oznaczało, że kiedy kontrola dostanie się do tego pliku, powinna się zepsuć?

Osobiście uważam, że nie powinno to być trudne do wdrożenia w gdb, ale zastanawiam się, czy ktoś już to zrobił.

+2

możliwym duplikatu [Używanie gdb zatrzymać program, gdy jest za pomocą dowolna funkcja z pliku X] (http://stackoverflow.com/questions/475283/using-gdb-stop-the-program-when-it-is-using-any-function-from-file-x) –

Odpowiedz

32
+0

To znaczy Działa i nie oczekuje się, że zadziała: http://stackoverflow.com/questions/9096624/putting-breakpoint-in-a-file-using-rbreak-filename-c-doesntwork –

+4

Wyszukaj "rbreak" file: regex "na stronie, którą połączyłem. Potwierdziłem, że działa na moich własnych przykładach. –

4
(gdb) set height 0 
(gdb) rbreak file.cpp:.* 

pracował dobrze dla mnie.

W moim przypadku było to użyteczne, aby zmniejszyć wynik ustawić trochę podając argument szablonu dla funkcji zawartych w pliku:

(gdb) rbreak file.cpp:.*TemplateClass.*