eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingrzadki bład w programie w C++ › Re: rzadki bład w programie w C++
  • Data: 2021-08-23 20:57:58
    Temat: Re: rzadki bład w programie w C++
    Od: Robert Magdziarz <r...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    poniedziałek, 23 sierpnia 2021 o 16:48:49 UTC+2 Maciek Godek napisał(a):
    > poniedziałek, 23 sierpnia 2021 o 16:04:12 UTC+2 r...@g...com napisał(a):

    > > poniedziałek, 23 sierpnia 2021 o 15:44:35 UTC+2 Maciek Godek napisał(a):
    >
    > > w pliku cache.xml mam atrybut strs="" a powinien być niepusty string
    > No dobra, to już jest coś.
    > A teraz kilka pytań bardziej konkretnych: w jaki sposób i w jakich okolicznościach
    tworzysz plik cache.xml?

    Pod koniec działania programu. Wykorzystuję bibliotkę pugixml (i xml_document). Mam z
    nią problemy, musiałem użyć atrybutu, bo zapisywanie w treści węzła nie działało mi.

    > W jaki sposób atrybut "strs" jest reprezentowany w pamięci podczas działania
    programu?

    vector<string>, robię strs = implode(magic_str, vector<string>)
    moje vector<string> to drugie składowe unordered_map<wstring, vector<string>>

    > Czy ten atrybut ma w pliku xml tylko jedną instancję, czy może jest wiele obiektów
    posiadających taki atrybut?

    wiele

    > Jakich operacji dokonujesz na obiekcie, który ma zostać zapisany do tego atrybutu?

    push_back(), find(), iteracja z begin() i end()

    > I czy to jest jedyny problem, jaki udało Ci się zaobserwować, czy może jest ich
    więcej?

    to chyba ostatni błąd, wcześniejsze naprawiłem, nowych nie dostrzegam
    miałem problemy z regexami, używam skomplikowanych regexów dla długich tekstów,
    miewałem core dumped, poradziłem sobie wprowadzając ograniczenie na długość tekstu
    (linia w wejściowym pliku tekstowym)
    w programie używam sterty na której allokuje obiekty STL i nie mam 100% pewności czy
    nie naknociłem, z new/delete

    > > > - jak duży jest program
    > > ok. 7 tys wierszy
    > > > - na jakim etapie rozwoju programu pojawił się błąd
    > > w trakcie testowania dokonywałem poprawek w kodzie w miarę jak znajdywałem błędy,
    poprawki mogły coś popsuć
    > Używasz systemu kontroli wersji (np. git) do rozwijania programu?

    nie

    > > > - czy możesz łatwo przepisać program np. na C# albo Javę
    > > nie mogę bo program używa Qt5, ponadto potrzebuję binarkę dla Windows i Linuxa
    > Tutaj akurat Java dałaby radę, ale 7 tysięcy linii kodu to już faktycznie trochę
    jest.
    > > > Możesz też poszukać w okolicy jakiegoś kolegi-programisty, usiąść z nim i
    wspólnie przejrzeć kod.
    > > to byłby dobry pomysł gdyby nie to że teraz nie jestem zatrudniony, pracuję nad
    programem w domu; algorytmy są na tyle skomplikowane że zrozumienie programu przez
    drugą osobę wymagałoby dużego zaangażowania, dużo czasu; całego kodu źródłowego
    nieznajomym wysyłać nie chcę
    > > > Czasem pomaga kompilacja kodu z flagami -Wall albo -Wextra - może pomoże
    wskazać miejsce w kodzie, w którym jest jakieś podejrzane użycie języka.
    > > dzięki, spróbuję; czy polecasz jakieś inne narzędzia? (nie jestem zaawansowany w
    C++, na co dzień programuję w PHP).
    > Możesz spróbować skompilować dwoma kompilatorami (np. clang i gcc) i zobaczyć, czy
    któryś z nich da jakiś dodatkowy komunikat. Poza tym istnieją różne narzędzia do
    statycznej analizy, ale często są płatne i wcale nie ma pewności, czy pomogą.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: