Debuggen in Linux

Status
Niet open voor verdere reacties.

lamko

Gebruiker
Lid geworden
5 jun 2011
Berichten
8
Beste mensen,

Ik probeer in een functie in een array op een bepaalde postitie te komen. Dan probeer ik watchpoints op te geven voor en [j]. Bijv op [3] en [2] daarna wil ik door na [3][3] zodat ik mooi de variabelen in de gaten kan houden. Ook wat er bijv op die positie staat. Ik weet dat codeblocks gdb als debugger in de achtergrond gebruikt. En ben met DDD ook even bezig geweest door het volgende te doen :
gdb > break won
Dus eerst een breakpoint op de functie won
gdb > run
Om in de functie te komen.
gdb > break 37 if i =="3"
Maar dit stop alleen maar op de functie, maar niet op de manier zodat ik ook in de functie kan duiken want dan veranderen de waarden in nul en kan ik met next alsnog de hele array doorlopen.
Ik gebruik nu codeblocks on Linux maar kan ook evt gdb of DDD gebruiken.

Code:
bool
won(void)
{
    int prevpos = 0;
    int count = 0;

    for (i = 0 ; i <= d -1 ; i++)
    {
        for (j = 0 ; j <= d -1; j++)
        {
            prevpos = board[i][j];
            if(board[i][j] >= prevpos )
                count++;
                if (count == (d*d)-1)
                return true;
        }

    }
    return false;
}
 
Ik weet niet of het ook kan met code::blocks, maar met visual c++ kan je de tabel wel uitlezen. Misschien dat je daar wijzer van word? Heb je ook rekening mee gehouden dat arrays beginnen met 0 en niet met 1? Verder moet je iets gedetaileerder je vraag stellen, en uitleggen wat je precies wil doen.
 
breakpoint aan het begin van de loop en een aan het eind + paar keer continue en ik ben op de juiste locatie :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan