#programowanie
#naukaprogramowania
#fortran #gdb #linux
Jak napiszemy coś w stylu
Array(1:2,:) w fortranie to nam to elegancko wytnie i to działa. Po prostu bardziej wewnętrzny wymiar zna swój zakres a ten zewnętrzny wie co Ile skakać. Ale GDB nie ogarnia takich rzeczy i nie mogę wymyślić gdzie szukać tej informacji o kroku poprawiając GDB. Jakieś rady co czytać?
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Robi to parametr -g w pliku Makefile. Niby znane ale nie pomagało do tej pory, ale to dlatego że kompilator twierdził zawsze że is up to date. bo sam kod programu testowego się nie zmieniał i dlatego plik wynikowy nie miał danych do debugowania które daje parametr -g.
  • Odpowiedz
@look997: no to znaczy, że nie jest ustawione. Sprawdziłem u siebie, działa.
(gdb) set substitute-path '/home/me/src/foo' '/foo/src'
(gdb) show substitute-path
List of all source path substitution rules:
/home/me/src/foo' -> /foo/src'.
  • Odpowiedz
@look997: Rozwiązanie:
Do pliku /etc/gdb/gdbinit dodałem:
set substitute-path /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/ /usr/include/c++/6.3.1/

I gotowe.
  • Odpowiedz
#programowanie #cpp #gdb #gpp #linux #visualstudio #visualstudiocode
Gdy kliknę "Start Debugging" a potem "pause" to pojawia się Error:
Unable to open 'stdiosyncfilebuf.h': File not found (/build/gcc/src/gcc-build/x8664-pc-linux-gnu/libstdc++-v3/include/ext/stdiosyncfilebuf.h).

Trzeba jakoś do gdb podlinkować biblioteki w pliku launch.json? A może jakiś atrybut do
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Rozwiązanie kwestii błędu "Unable to open":
Do pliku /etc/gdb/gdbinit dodałem:
set substitute-path /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/ /usr/include/c++/6.3.1/

I gotowe.
  • Odpowiedz
Mirki, mam pytanie z assemblera x86. Napisałem prosty program, który pyta o imię, a potem je wyświetla. Program działa, niby wszystko ok. Ale chciałbym go debugować w trybie krokowym przy pomocy gdb i tu jest problem. Nie działa mi wczytywanie imienia, niby po wykonaniu przerwania (int $0x80 w bloku "Wczytywanie imienia) program czeka na podanie tekstu, ja wpisuję, daję enter i program idzie dalej, ale jednak wczytany tekst nie zostaje zapisany. Wiecie może jak rozwiązać ten problem? Poniżej kod mojego programu. #programowanie #assembler #gdb

SYSEXIT=1

SYSREAD=3

SYSWRITE=4
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@xmrG: a czy STDIN nie powinien wynosić 0? Do ebx powinieneś wrzucić 0 ;D w nasmie u mnie wygląda to następująco:

mov eax, 3
  • Odpowiedz
#programowanie #kdevelop #gdb #cpp

Miał ktoś z Was problem z debugowaniem w KDevelop? Wszystko IMO ustawione jest poprawnie, odpalam tryb debugowania i nie zatrzymuje mi się na breakpointach. GDB uruchomiłem z palca w konsoli i śmiga aż miło, więc to nie kwestia GDB. Kompiluję za pmocą CMake który domyślnie kompiluje do Debug więc w makefile nawet nie zaglądałem bo chyba nie ma sensu...
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mam taki błąd programu jak uruchamiam (już przez gdb):

Starting program: /usr/local/bin/midori

[Thread debugging using libthreaddb enabled]
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach