<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY appversion "0.5.0">
<!ENTITY manrevision "2.0">
<!ENTITY date "February 2008">
<!ENTITY app "Nemiver">
<!ENTITY appcmd "nemiver">
<!ENTITY website "http://www.gnome.org/projects/nemiver/">
]>
<!--
(Do not remove this comment block.)
Maintained by the GNOME Documentation Project
http://developer.GNOME.org/projects/gdp
Template version: 2.0 beta
Template last modified Jan 30, 2002

-->
<!-- =============Document Header ============================= -->
<?chunk-depth 2?>
<article id="index" lang="sv">
  <!-- please do not change the id; for translations, change lang to -->
  <!-- appropriate code -->
  <articleinfo>
    <title>Handbok för Nemiver</title>
    <copyright><year>2008</year> <holder>Jonathon Jongsma</holder></copyright>
    <!-- translators: uncomment this:

    <copyright>
      <year>2003</year>
      <holder>ME-THE-TRANSLATOR (Latin translation)</holder>
    </copyright>

    -->
    <publisher role="maintainer">
      <publishername>Nemiver-projektet</publishername>
    </publisher>
    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="legal.xml"/>
    <authorgroup>
      <author><firstname>Jonathon</firstname> <surname>Jongsma</surname> <affiliation> <orgname>GNOME</orgname> </affiliation></author>
      <!-- This is appropriate place for other contributors: translators,
      maintainers,  etc. Commented out by default.
      <othercredit role="translator">
        <firstname>Latin</firstname>
        <surname>Translator 1</surname>
        <affiliation>
          <orgname>Latin Translation Team</orgname>
          <address> <email>translator@gnome.org</email> </address>
        </affiliation>
        <contrib>Latin translation</contrib>
      </othercredit>
      -->
    </authorgroup>
    <!-- According to GNU FDL, revision history is mandatory if you are -->
    <!-- modifying/reusing someone else's document.  If not, you can omit it. -->
    <revhistory>
      <!-- Remember to remove the &manrevision; entity from the revision entries other
      than the current revision. -->
      <revision><revnumber>1.0</revnumber> <date>2007</date> <revdescription>
          <para>Initial version</para>
        </revdescription></revision>
      <revision><revnumber>2.0</revnumber> <date>2008</date> <revdescription>
          <para>Uppdaterad inför publicering av 0.5.0</para>
        </revdescription></revision>
    </revhistory>
    <releaseinfo>Denna handbok beskriver version 0.5.0 av Nemiver.</releaseinfo>
    <legalnotice>
      <title>Återkoppling</title>
      <para>För att rapportera ett fel eller lämna in ett förslag angående programmet <application>Nemiver</application> eller denna handbok, se <ulink url="http://www.gnome.org/projects/nemiver/" type="http">Nemivers projektwebbplats</ulink>.</para>
      <!-- Translators may also add here feedback address for translations -->
    </legalnotice>
    <abstract role="description">
      <para>Nemiver är en grafisk felsökare för skrivbordsmiljön GNOME.</para>
    </abstract>
  
    <othercredit class="translator">
      <personname>
        <firstname>Daniel Nylander</firstname>
      </personname>
      <email>po@danielnylander.se</email>
    </othercredit>
    <copyright>
      
        <year>2007</year>
      
      <holder>Daniel Nylander</holder>
    </copyright>
  
    <othercredit class="translator">
      <personname>
        <firstname>Sebastian Rasmussen</firstname>
      </personname>
      <email>sebras@gmail.com</email>
    </othercredit>
    <copyright>
      
        <year>2016</year>
      
      <holder>Sebastian Rasmussen</holder>
    </copyright>
  </articleinfo>
  <indexterm><primary>Nemiver</primary></indexterm>
  <indexterm><primary>felsökare</primary></indexterm>
  <indexterm><primary>gdb</primary></indexterm>
  <!-- ============= Document Body ============================= -->
  <!-- ============= Introduction ============================== -->
  <sect1 id="nemiver-sect-intro">
    <title>Översikt</title>
    <para>Nemiver är ett pågående projekt för att skriva en fristående grafisk felsökare som integrerar väl med GNOME:s skrivbordsmiljö. Det har för närvarande en bakände som använder den välkända GNU-felsökaren gdb för att felsöka C / C++-program.</para>
    <sect2 id="nemiver-sect-perspectives">
      <title>Perspektiv</title>
      <para>Nemiver är designat som en allmän grafisk <interface>arbetsyta</interface> och ett system med insticksmoduler som kan erbjuda flera olika perspektiv. För närvarande är det enda perspektiv som erbjuds ett felsökningsperspektiv, men i framtiden kan perspektiv läggas till för minnesfelsökning med <application>valgrind</application> eller för profileringsverktyg så som <application>oprofile</application>.</para>
    </sect2>
  </sect1>
  <sect1 id="nemiver-sect-getting-started">
    <title>Komma igång</title>
    <para>Detta avsnitt berättar hur du startar Nemiver och ger en grundläggande översikt över programmet.</para>
    <sect2 id="nemiver-sect-starting">
      <title>Starta Nemiver</title>
      <para>Du kan starta Nemiver på följande sätt:</para>
      <variablelist>
        <varlistentry>
          <term><guimenu>Program</guimenu>-menyn</term>
          <listitem>
            <para>Välj <menuchoice><guisubmenu>Programmering</guisubmenu><guimenuitem>Nemiver felsökare</guimenuitem></menuchoice>.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>Kommandorad</term>
          <listitem>
            <para>Skriv <command>nemiver</command> och tryck sedan <keycap>Retur</keycap>.</para>
            <tip>
              <title>Ytterligare kommandoradsflaggor</title>
              <para>Du kan hitta en lista över flaggor som kan anges på kommandoraden till Neimiver genom att skriva <command>nemiver --help-all</command>.</para>
            </tip>
          </listitem>
        </varlistentry>
      </variablelist>
    </sect2>
    <sect2 id="nemiver-sect-window">
      <title>Nemiver-fönstret</title>
      <para>När du startar Nemiver kommer du att se ett fönster som liknar det följande:</para>
      <figure id="nemiver-window">
        <title>Nemiver-fönstret</title>
        <screenshot>
          <mediaobject><imageobject> <imagedata fileref="figures/main-window.png" format="PNG"/> </imageobject> <textobject> <phrase>Visar Nemivers huvudfönster.</phrase> </textobject></mediaobject>
        </screenshot>
      </figure>
      <para>Fönstret <application>Nemiver</application> innehåller följande delar:</para>
      <variablelist>
        <varlistentry>
          <term>Menyrad</term>
          <listitem>
            <para>Menyerna i menyraden innehåller alla kommandon du behöver för att använda <application>Nemiver</application>.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>Verktygsfält</term>
          <listitem>
            <para>Verktygsfältet innehåller de grundläggande felsökningsåtgärderna som kan användas för att köra eller stega genom programmet som felsöks.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>Källkodsvy i anteckningsbok</term>
          <listitem>
            <para>När källkodsfiler är öppna kommer denna yta att visa källkodsfiler för programmet som felsöks.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>Statusanteckningsbok</term>
          <listitem>
            <para>Statusanteckningsboken innehåller flera flikar som visar information om programmet som felsöks. Dessa inkluderar följande:</para>
            <variablelist>
              <varlistentry>
                <term>Stackspårning</term>
                <listitem>
                  <para>Visar det aktuella tillståndet för anropsstacken för programmet som felsöks.</para>
                </listitem>
              </varlistentry>
              <varlistentry>
                <term>Variabler</term>
                <listitem>
                  <para>Visar en lista över alla lokala variabler och funktionsargument tillsammans med deras värden och typer.</para>
                </listitem>
              </varlistentry>
              <varlistentry>
                <term>Målterminal</term>
                <listitem>
                  <para>Om programmet som felsöks skriver någon utdata till terminalen kommer den att visas i denna flik.</para>
                </listitem>
              </varlistentry>
              <varlistentry>
                <term>Brytpunkter</term>
                <listitem>
                  <para>Denna flik visar en lista över alla brytpunkter som har ställts in. Du kan visa källkoden för en specifik brytpunkt genom att dubbelklicka på ett objekt i listan eller genom att högerklicka och välja <menuchoice><guimenuitem>Gå till källkod</guimenuitem></menuchoice> från menyn. Brytpunkter kan dessutom tas bort, aktiveras eller inaktiveras i denna flik. För vidare information om brytpunkter se <xref linkend="nemiver-sect-breakpoints"/>.</para>
                </listitem>
              </varlistentry>
              <varlistentry>
                <term>Register</term>
                <listitem>
                  <para>Denna flik visar alla CPU-register och deras värden. För vidare information se <xref linkend="nemiver-sect-registers"/>.</para>
                </listitem>
              </varlistentry>
              <varlistentry>
                <term>Minne</term>
                <listitem>
                  <para>Denna flik visar en vy över det aktuella tillståndet för specifika minnespositioner. För vidare information se <xref linkend="nemiver-sect-memory"/>.</para>
                </listitem>
              </varlistentry>
            </variablelist>
          </listitem>
        </varlistentry>
      </variablelist>
    </sect2>
    <sect2 id="nemiver-sect-loading-program">
      <title>Att välja ett program att felsöka</title>
      <para>Det finns flera sätt att börja felsöka ett program. Nemiver låter dig läsa in en lokal körbar fil, läsa in en minnesfil, fästa till en körande process eller ansluta till en fjärrfelsökningsserver.</para>
      <sect3 id="nemiver-sect-starting-executable">
        <title>Felsökning av ett körbart program</title>
        <sect4>
          <title>Att använda arbetsytan</title>
          <para>För att välja ett körbart program att felsöka, välj <menuchoice><guimenu> Arkiv </guimenu><guimenuitem> Körbar fil… </guimenuitem></menuchoice> vilket bör visa följande dialog:</para>
          <figure id="nemiver-execute-dialog">
            <title>Kördialog</title>
            <screenshot>
              <mediaobject><imageobject> <imagedata fileref="figures/execute-dialog.png" format="PNG"/> </imageobject> <textobject> <phrase>Visar dialogen där den körbara filen väljs</phrase> </textobject></mediaobject>
            </screenshot>
          </figure>
          <para>I denna dialog kan du välja programmet som ska felsökas, vilka argument eller flaggor som ska skickas på kommandoraden till den körbara filen, vilken arbetskatalog den körbara filen ska köras i och vilka miljövariabler som ska ställas in när den körbara filen felsöks.</para>
        </sect4>
        <sect4>
          <title>Använda kommandoraden</title>
          <para>För att från kommandoraden starta ett körbart program att felsöka anges helt enkelt namnet på den körbara filen. Du kan antingen ange en absolut sökväg till den körbara filen, eller om den finns i sökvägen helt enkelt ange basnamnet för den körbara filen. Om till exempel <filename>/usr/bin</filename> finns i din sökväg är dessa båda giltiga:</para>
          <itemizedlist>
            <listitem>
              <para><command>nemiver /usr/bin/programnamn</command></para>
            </listitem>
            <listitem>
              <para><command>nemiver programnamn</command></para>
            </listitem>
          </itemizedlist>
          <tip>
            <title>Ange flaggor på kommandoraden</title>
            <para>Om du vill skicka kommandoradsflaggor till programmet som du felsöker bör du omsluta dem i citattecken för att förhindra att Nemiver behandlar dem: <command>nemiver "programnamn --arg1 --arg2"</command>.</para>
          </tip>
        </sect4>
      </sect3>
      <sect3 id="nemiver-sect-attach">
        <title>Fäst till ett körande program</title>
        <sect4>
          <title>Att använda arbetsytan</title>
          <para>Välj menyobjektet <menuchoice><guimenu> Arkiv </guimenu><guimenuitem> Fäst till körande program… </guimenuitem></menuchoice> vilket bör visa följande dialog:</para>
          <figure id="nemiver-attach-dialog">
            <title>Fästdialog</title>
            <screenshot>
              <mediaobject><imageobject> <imagedata fileref="figures/attach-dialog.png" format="PNG"/> </imageobject> <textobject> <phrase>Visar dialog för att fästa till ett körande program</phrase> </textobject></mediaobject>
            </screenshot>
          </figure>
          <para>Välj en process från listan och klicka på <guibutton>OK</guibutton> för att börja felsöka det valda programmet. Det kan finnas flera processer listade i dialogen så du kan filtrera listan så att bara de som du är intresserad av visas genom att skriva in text i textinmatningsrutan precis under listan.</para>
        </sect4>
        <sect4>
          <title>Använda kommandoraden</title>
          <para>För att fästa till ett körande program från kommandoraden använd flaggan <option>--attach</option>. Flaggan <option>--attach</option> accepterar antingen en PID eller ett processnamn. Så för att till exempel felsöka den körande processen <command>foo</command> som har PID 1121 kan du antingen skriva <command>nemiver --attach foo</command> eller <command>nemiver --attach 1121</command>.</para>
        </sect4>
      </sect3>
      <sect3 id="nemiver-sect-core-file">
        <title>Läsa in en minnesfil</title>
        <sect4>
          <title>Att använda arbetsytan</title>
          <para>Välj menyobjektet <menuchoice><guimenu> Arkiv </guimenu><guimenuitem> Läs in minnesfil… </guimenuitem></menuchoice> för att få upp följande dialog som låter dig läsa in en minnesfil:</para>
          <figure id="nemiver-load-core-dialog">
            <title>Dialog för att läsa in en minnesfil</title>
            <screenshot>
              <mediaobject><imageobject> <imagedata fileref="figures/load-core-dialog.png" format="PNG"/> </imageobject> <textobject> <phrase>Visar dialog för att läsa in en minnesfil</phrase> </textobject></mediaobject>
            </screenshot>
          </figure>
        </sect4>
        <sect4>
          <title>Använda kommandoraden</title>
          <para>Minnesfiler kan inte läsas in från kommandoraden.</para>
        </sect4>
      </sect3>
      <sect3 id="nemiver-sect-remote">
        <title>Fjärrfelsökning</title>
        <para>Nemiver låter dig ansluta till en fjärrfelsökningsserver.</para>
        <sect4>
          <title>Att använda arbetsytan</title>
          <para>För att ansluta till en fjärrfelsökningsserver, välj <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Anslut till fjärrmål…</guimenuitem></menuchoice></para>
          <screenshot>
            <mediaobject><imageobject> <imagedata fileref="figures/connect-remote-dialog.png" format="PNG"/> </imageobject> <textobject> <phrase>Dialog för fjärrfelsökning</phrase> </textobject></mediaobject>
          </screenshot>
          <para>Välj den körbara filen som ska läsas in och platsen där delade bibliotek finns och fyll sedan i detaljerna om anslutningen till fjärrservern.</para>
        </sect4>
        <sect4>
          <title>Använda kommandoraden</title>
          <para>Nemiver tillhandahåller inte ett sätt att ansluta till en fjärrserver från kommandoraden</para>
        </sect4>
      </sect3>
    </sect2>
  </sect1>
  <sect1 id="nemiver-sect-using">
    <title>Användning av Nemiver</title>
    <para>Detta avsnitt beskriver hur du använder Nemiver för att felsöka ditt program.</para>
    <sect2 id="nemiver-sect-basic-debugging">
      <title>Grundläggande felsökningsåtgärder</title>
      <para>De grundläggande felsökningsåtgärderna finns tillgängliga i huvudverktygsfältet, i menyn <guimenu>Felsök</guimenu> och som tangentbordsgenvägar. De vanligaste åtgärderna listas nedan:</para>
      <variablelist>
        <varlistentry>
          <term>Fortsätt</term>
          <listitem>
            <para>Startar programmet. Programmet kommer att köra tills det når en brytpunkt eller tills programmet avslutas om det inte avbryts manuellt av att användaren klickar på <action>Stopp</action>. Denna åtgärd kan aktiveras från tangentbordet med <keycap>F5</keycap>.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>Nästa</term>
          <listitem>
            <para>Exekverar nästa sats och stannar när det når nästa rad i denna fil. Vissa felsökare kan kalla denna åtgärd ”Stega över”. Denna åtgärd kan aktiveras från tangentbordet med <keycap>F6</keycap>.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>Stega</term>
          <listitem>
            <para>Exekverar nästa sats, stegar in i funktioner om möjligt. Vissa felsökare kan kalla denna åtgärd ”Stega in”. Denna åtgärd kan aktiveras från tangentbordet med <keycap>F7</keycap>.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>Stega ut</term>
          <listitem>
            <para>Avslutar exekveringen av aktuell funktion och stannar när den når den anropande funktionen. Denna åtgärd kan aktiveras från tangentbordet med <keycombo><keycap>Skift</keycap><keycap>F7</keycap></keycombo>.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>Starta om</term>
          <listitem>
            <para>Läser in aktuell körbar fil på nytt och startar exekveringen från början. Denna åtgärd kan aktiveras från tangentbordet med <keycombo><keycap>Skift</keycap><keycap>F5</keycap></keycombo>.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>Stopp</term>
          <listitem>
            <para>Avbryter manuellt exekveringen av att program. Denna åtgärd är bara tillgänglig när felsökaren kör den körbara filen (t.ex. efter att användaren har klickat på <action>Fortsätt</action>). Denna åtgärd kan aktiveras från tangentbordet med <keycap>F9</keycap>.</para>
          </listitem>
        </varlistentry>
      </variablelist>
      <para>Som standard kommer Nemiver, efter att en körbar fil lästs in, att skapa en brytpunkt vid <function>main()</function> så att när exekveringen når <function>main()</function> kommer den att stanna och vänta på indata. Du kan sedan stega genom programmet, undersöka variabler (se <xref linkend="nemiver-sect-inspecting-variables"/>), eller ställa in ytterligare brytpunkter (se <xref linkend="nemiver-sect-breakpoints"/>).</para>
    </sect2>
    <sect2 id="nemiver-sect-inspecting-variables">
      <title>Inspektion av variabler</title>
      <para>Nemiver visar en lista över alla lokala variabler i fliken <interface>Variabler</interface> i <interface>Statusanteckningsboken</interface>. Om du skulle vilja undersöka en annan variabel (eller till och med ett godtyckligt uttryck), kan du använda <interface>Variabelinspektören</interface>. För att visa <interface>Variabelinspektören</interface> välj <menuchoice><guimenu>Felsök</guimenu><guimenuitem>Inspektera en variabel</guimenuitem></menuchoice>. När variabelinspektören visas kommer du att se ett fönster som liknar följande:</para>
      <screenshot>
        <mediaobject><imageobject> <imagedata fileref="figures/variable-inspector.png" format="PNG"/> </imageobject> <textobject> <phrase>Dialog som visar variabelinspektören</phrase> </textobject></mediaobject>
      </screenshot>
      <para>Du kan skriva in vilket variabelnamn som helst eller ett enkelt uttryck (så som <literal>pFoo-&gt;bar</literal>) i inmatningsrutan och om variabeln är giltig och inom räckvidd kommer den att visa detaljer om det uttrycket.</para>
      <para>Alternativt, om du väljer namnet på en variabel i <interface>källkodsredigeraren</interface> och sedan startar <interface>Variabelinspektören</interface> kommer den att försöka att visa information om det valda variabelnamnet.</para>
      <tip>
        <title>Tangentbordsgenvägar</title>
        <para>Du kan också starta <interface>Variabelinspektören</interface> genom att trycka <keycap>F12</keycap>.</para>
      </tip>
      <para>Nemiver kommer också att låta dig visa en lista över alla globala variabler i ett program i en separat dialog. För att visa dialogen <interface>Globala variabler</interface>, välj <menuchoice><guimenu>Felsök</guimenu><guimenuitem>Visa globala variabler</guimenuitem></menuchoice> eller tryck <keycombo><keycap>Ctrl</keycap><keycap>G</keycap></keycombo>.</para>
      <screenshot>
        <mediaobject><imageobject> <imagedata fileref="figures/global-variables-dialog.png" format="PNG"/> </imageobject> <textobject> <phrase>Dialog för globala variabler</phrase> </textobject></mediaobject>
      </screenshot>
      <warning>
        <para>För vissa program (speciellt C++-program) kan listning av alla globala variabler ta väldigt lång tid.</para>
      </warning>
    </sect2>
    <sect2 id="nemiver-sect-breakpoints">
      <title>Ställ in brytpunkter</title>
      <para>Det finns flera olika sätt att ställa in brytpunkter i Nemiver. Nemiver ställer automatiskt in en brytpunkt på <function>main()</function> när du börjar felsöka en ny körbar fil. Om du vill ställa in ytterligare brytpunkter kan du göra endera av följande:</para>
      <itemizedlist>
        <listitem>
          <para>Klicka i marginalen intill raden där du vill ha en brytpunkt inställd</para>
        </listitem>
        <listitem>
          <para>Placera din markör på en rad där du vill att en brytpunkt ska vara finnas och ställ in brytpunkten antingen genom att välja <menuchoice><guimenu>Felsök</guimenu><guimenuitem>Växla brytpunkt vid markör</guimenuitem></menuchoice> eller genom att trycka på <keycap>F8</keycap></para>
        </listitem>
        <listitem>
          <para>Ställ in en brytpunkt vid ett specifikt funktionsnamn eller vid en specifik plats i en fil genom att välja <menuchoice><guimenu>Felsök</guimenu><guimenuitem>Ställ in brytpunkt…</guimenuitem></menuchoice> eller genom att trycka <keycombo><keycap>Ctrl</keycap><keycap>B</keycap></keycombo>. Detta kommer att visa en dialog som ser ut som följer:</para>
          <screenshot>
            <mediaobject><imageobject> <imagedata fileref="figures/set-breakpoint-dialog.png" format="PNG"/> </imageobject> <textobject> <phrase>Dialog för att ställa in en brytpunkt</phrase> </textobject></mediaobject>
          </screenshot>
          <para>Du kan ange en brytpunkt vid en viss plats i en fil, eller efter funktionsnamn. Om det finns fler än en funktion med samma namn kommer Nemiver att visa en lista över alla matchade funktioner och be dig att välja den du vill ha.</para>
        </listitem>
      </itemizedlist>
      <sect3>
        <title>Inaktiverade brytpunkter</title>
        <para>Brytpunkter kan antingen aktiveras eller inaktiveras. Felsökaren kommer att stanna exekveringen när den når en aktiverad brytpunkt men kommer inte att påverkas av brytpunkter som är i inaktiverat tillstånd. Detta låter dig tillfälligt ta bort en brytpunkt utan att faktiskt ta bort den.</para>
        <para>För att inaktivera eller aktivera en brytpunkt, klicka på kryssrutan intill brytpunktsnumret du vill aktivera eller inaktivera i fliken <interface>Brytpunkter</interface> i <interface>Statusanteckningsbok</interface>. Alternativt kan du trycka på <keycombo><keycap>Skift</keycap><keycap>F8</keycap></keycombo> för att aktivera eller inaktivera brytpunkter som ställs in på den aktuella rad som markören är på.</para>
        <para>Följande figurer visar skillnaden mellan aktiverade och inaktiverade brytpunkter i källkodsredigeraren.</para>
        <screenshot>
          <mediaobject><imageobject> <imagedata fileref="figures/enabled-breakpoint.png" format="PNG"/> </imageobject> <textobject> <phrase>Illustration av en aktiverad brytpunkt</phrase> </textobject> <caption><para>Aktiverade brytpunkter</para></caption></mediaobject>
        </screenshot>
        <screenshot>
          <mediaobject><imageobject> <imagedata fileref="figures/disabled-breakpoint.png" format="PNG"/> </imageobject> <textobject> <phrase>Illustration av en inaktiverad brytpunkt</phrase> </textobject> <caption><para>Inaktiverade brytpunkter</para></caption></mediaobject>
        </screenshot>
      </sect3>
      <sect3>
        <title>Öppna källkodsfiler</title>
        <para>Ibland kanske du inte exakt känner till funktionsnamnet eller radnumret där du vill ställa in en brytpunkt så du måste öppna en källkodsfil för att lista ut det. Du skulle kunna öppna godtyckliga filer från filsystemet men Nemiver kan också tillhandahålla en lista över källkodsfiler som användes för att bygga den körbara filen och låta dig välja från denna listan. När du väljer <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Öppna källkodsfil…</guimenuitem></menuchoice> bör följande fönster visas:</para>
        <screenshot>
          <mediaobject><imageobject> <imagedata fileref="figures/open-files-target.png" format="PNG"/> </imageobject> <textobject> <phrase>Visar dialog för att öppna källkodsfiler</phrase> </textobject></mediaobject>
        </screenshot>
        <para>För att välja en godtycklig fil från filsystemet, välj alternativet <guilabel>Välj från filsystem</guilabel>. För att välja från en lista av filer som producerat den körbara filen, välj <guilabel>Välj från körbar målfil</guilabel>.</para>
        <warning>
          <title>Att avgöra vilka källkodsfiler som utgör en dynamiskt inläst modul</title>
          <para>Om den körbara målfilen läser in moduler i körtid (t.ex. via <function>dlopen()</function>) kommer Nemiver inte att kunna avgöra vilka filer som använts för att bygga dessa moduler förrän de faktiskt lästs in.</para>
        </warning>
      </sect3>
    </sect2>
    <sect2 id="nemiver-sect-advanced">
      <title>Avancerad felsökning</title>
      <sect3 id="nemiver-sect-registers">
        <title>Register</title>
        <para>Komponenten för registerredigering finns i fliken <interface>Register</interface> i <interface>Statusanteckningsboken</interface>. Alternativt kan du trycka <keycombo><keycap>Alt</keycap><keycap>F5</keycap></keycombo> för att direkt hoppa till rätt flik.</para>
        <screenshot>
          <mediaobject><imageobject> <imagedata fileref="figures/registers-view.png" format="PNG"/> </imageobject> <textobject> <phrase>Komponenten för registerredigering</phrase> </textobject></mediaobject>
        </screenshot>
        <para>Denna komponent visar aktuella värden för alla CPU-register. Du kan redigera registervärden genom att klicka i kolumnen <interface>Värde</interface> och mata in ett nytt värde. Om värde för register ändrats sedan senaste gången felsökaren stannade kommer det att färgmarkeras i rött.</para>
      </sect3>
      <sect3 id="nemiver-sect-memory">
        <title>Minne</title>
        <para>Minneskomponenten låter dig direkt visa ett område av minne. Detta låter dig komma ner till en lägre nivå kring vad som händer när ditt program kör.</para>
        <screenshot>
          <mediaobject><imageobject> <imagedata fileref="figures/memory-view.png" format="PNG"/> </imageobject> <textobject> <phrase>Komponenten för minnesredigering</phrase> </textobject></mediaobject>
        </screenshot>
        <para>För att visa ett område av minne i komponenten för minnesvisning, mata in en minnesadress i fältet <interface>Adress</interface>. Om adressen är giltig för programmet som felsöks kommer minnesvyn att visa minnesvärden som börjar på den angivna adressen. Minnesvärde kan visas i byte-, (2 byte) ord- eller (4 byte) långordsformat genom att välja ett alternativ från rullgardinsmenyn <interface>Gruppera efter</interface>. Minnesvärdena kommer automatiskt att uppdateras allt eftersom du stegar genom programmet.</para>
        <para>Förutom att visa minnesvärde kan du också använda komponenten för minnet för att modifiera minnesvärden. Du kan redigera antingen den hexadecimala byte-representationen (den vänstra delen av komponenten för minnet) eller ASCII-representationen (den högra delen av komponenten för minnet). Alla ändringar kommer att tillämpas omedelbart.</para>
      </sect3>
    </sect2>
  </sect1>
  <sect1 id="nemiver-sect-sessions">
    <title>Spara och återuppta sessioner</title>
    <para>Nemiver kan spara dina felsökningssessioner åt dig så att du kan återuppta dem vid ett senare tillfälle. Detta inkluderar att spara information så som vilken körbar fil som felsöks, vilka miljövariabler som är inställda och vilka kommandoradsflaggor som angetts till den körbara filen, vilka filer som är öppna och vilka brytpunkter som är inställda så att du kan gå tillbaka till där du senast lämnade så snabbt som möjligt.</para>
    <sect2 id="nemiver-sect-saving-sessions">
      <title>Spara sessioner</title>
      <para>Nemiver kommer att spara din session automatiskt vid avslut så du behöver inte ens bry dig om det. Om du däremot uttryckligen vill spara sessioner innan du stänger Nemiver kan du göra det genom att välja <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Spara session till disk</guimenuitem></menuchoice>.</para>
    </sect2>
    <sect2 id="nemiver-sect-resuming-sessions">
      <title>Återuppta sparade sessioner</title>
      <sect3>
        <title>Att använda arbetsytan</title>
        <para>Välj <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Återuppta sparad session…</guimenuitem></menuchoice> och välj en session från listan.</para>
        <figure id="nemiver-sessions-dialog">
          <title>Sessionsdialogen</title>
          <screenshot>
            <mediaobject><imageobject> <imagedata fileref="figures/sessions-dialog.png" format="PNG"/> </imageobject> <textobject> <phrase>Visar dialogen för återupptagning av en sparad session</phrase> </textobject></mediaobject>
          </screenshot>
        </figure>
      </sect3>
      <sect3>
        <title>Från kommandoraden</title>
        <para>Om du vet vilket sessions-ID sessionen du vill köra har kan du inleda felsökningssessionen från kommandoraden. Om du till exempel vill köra session nummer 3 kan du göra det genom följande kommando: <command>nemiver --session 3</command>.</para>
      </sect3>
    </sect2>
  </sect1>
  <!-- This should be the last section in the manual -->
  <sect1 id="nemiver-sect-about">
    <title>Om Nemiver</title>
    <para><application>Nemiver</application> skrevs av Dodji Seketeli och Jonathon Jongsma, med bidrag från många fler. För att hitta mer information om Nemiver, besök <ulink url="http://www.gnome.org/projects/nemiver/" type="http">projektwebbplatsen för Nemiver</ulink>.</para>
    <para>För att rapportera ett fel eller lämna ett förslag kring detta program eller denna manual, se avsnittet Återkoppling i <ulink url="ghelp:user-guide?feedback-bugs" type="help">användarguiden för GNOME</ulink>.</para>
    <para>Det här programmet distribueras under villkoren för GNU General Public License så som publicerats av Free Software Foundation; antingen version 2 av licensen, eller (om du så vill) någon senare version. En kopia av den här licensen kan hittas på <ulink url="ghelp:gpl" type="help">länk</ulink>, eller i filen COPYING som inkluderats i källkoden för det här programmet.</para>
  </sect1>
</article>
<!--
vim: ts=2 sw=2 et
-->
