Jump to content
Annons

Access Violation vid användning av AUX.


Discoführer

Recommended Posts

Använder PT 7.4 i jobbet och har på senaste tiden fått en hel del Access violation när jag försöker öppna vissa projekt. Ibland öppnas dom utan några problem, ibland fryser dom när man kört en stund, ibland öppnas dom inte alls och det ack så irriterande "Access Violation"-fönstret dyker upp (ibland varvat med lite Runtime Error och annat gött 😛).

Har försökt komma på vad detta kan bero på och nu verkar det som det är aux-kanlerna som är boven i dramat.

När jag skapar ett nytt projekt och importerar session datan från det strulande projektet så får jag återigen upp access violation när jag tar in alla spåren, men om jag utelämnar aux-kanalerna så funkar det fint (i alla fall ännu så länge).

Det verkar inte ha någon betydelse vilka pluggar som ligger på auxen, har f ö bara reggade pluggar.

Någon som har någon idé om vad detta kan bero på?

Mycket tacksam för svar!

Link to comment
Dela på andra sajter

Annons

Access Violation är ofta orsakat av att programmet försöker få åtkomst till en minnes-adress som inte tillhör det egna programmet. Problemet kan förklaras såhär:

minnestabellkr6.png

Bilden ovan visar en förenklad bild av minnet i datorn. Siffrorna i varje cell är en minnesadress och i cellen finns någon information lagrad.

Om vi nu säger att Program 2 av någon anledning skulle få för sig att han lagrat information i cellen med minnes-adressen 7 så kommer en Access Violation att uppstå, eftersom den minnes-adressen inte tillhör programmet. Anledningen till att denna referens till en adress (en Pekare i programmeringsspråk) är felaktig är svår att säga om man inte har tillgång till koden.

Att felet bara händer ibland kan bero på var i minnet programmet lagras. Om vi säger att vi efter en krasch startar upp programmet igen, men att programmet nu får minnesområdet för Program 1. Då kommer helt plötsligt minnes-adressen 7 vara giltigt för programmet, och allting kommer fungera felfritt.

Med det sagt så kan man också tänka sig att programmet hamnar i minnesområdet 4 - 15 istället. Då kommer pekaren peka på en adress i programmet, men eftersom hela minnet nu är förskjutet så kommer den information som är lagrad inte att vara den vi hade förväntat oss. Resultatet blir då att beräkningar eller dyl. som ska ske på informationen blir felaktiga och detta kan leda till att programmet kraschar eller att det fryser (möjligtvis för att ett villkor för att en loop ska avbrytas aldrig uppfylls i.o.m. den felaktiga informationen.)

Andra orsaker kan vara felaktigt kod som ibland anger fel minnesadress för data, att filen som laddas är korrupt, eller att en viss del av filen inte kan laddas och att pekaren då är NULL (NULL betyder inte jämförbart med något, och innebär att det som är NULL inte existerar. En NULL-pekare pekar då på en minnesadress som inte finns.)

Detta var antagligen inte den typ av svar du förväntade dig, men om du förstod ovanstående förklaring så förstår du iaf vad felet beror på rent tekniskt. Det kommer antagligen också någon som äger mig totalt när det gäller detta problem. Jag har bara precis påbörjat denna typ av programmering, och det är möjligt att ovanstående förklaring av felet inte är rätt i alla tillfällen.

Redigerat av allansson
Link to comment
Dela på andra sajter

Access Violation är ofta orsakat av att programmet försöker få åtkomst till en minnes-adress som inte tillhör det egna programmet. Problemet kan förklaras såhär:

minnestabellkr6.png

Bilden ovan visar en förenklad bild av minnet i datorn. Siffrorna i varje cell är en minnesadress och i cellen finns någon information lagrad.

Om vi nu säger att Program 2 av någon anledning skulle få för sig att han lagrat information i cellen med minnes-adressen 7 så kommer en Access Violation att uppstå, eftersom den minnes-adressen inte tillhör programmet. Anledningen till att denna referens till en adress (en Pekare i programmeringsspråk) är felaktig är svår att säga om man inte har tillgång till koden.

Att felet bara händer ibland kan bero på var i minnet programmet lagras. Om vi säger att vi efter en krasch startar upp programmet igen, men att programmet nu får minnesområdet för Program 1. Då kommer helt plötsligt minnes-adressen 7 vara giltigt för programmet, och allting kommer fungera felfritt.

Med det sagt så kan man också tänka sig att programmet hamnar i minnesområdet 4 - 15 istället. Då kommer pekaren peka på en adress i programmet, men eftersom hela minnet nu är förskjutet så kommer den information som är lagrad inte att vara den vi hade förväntat oss. Resultatet blir då att beräkningar eller dyl. som ska ske på informationen blir felaktiga och detta kan leda till att programmet kraschar eller att det fryser (möjligtvis för att ett villkor för att en loop ska avbrytas aldrig uppfylls i.o.m. den felaktiga informationen.)

Andra orsaker kan vara felaktigt kod som ibland anger fel minnesadress för data, att filen som laddas är korrupt, eller att en viss del av filen inte kan laddas och att pekaren då är NULL (NULL betyder inte jämförbart med något, och innebär att det som är NULL inte existerar. En NULL-pekare pekar då på en minnesadress som inte finns.)

Detta var antagligen inte den typ av svar du förväntade dig, men om du förstod ovanstående förklaring så förstår du iaf vad felet beror på rent tekniskt. Det kommer antagligen också någon som äger mig totalt när det gäller detta problem. Jag har bara precis påbörjat denna typ av programmering, och det är möjligt att ovanstående förklaring av felet inte är rätt i alla tillfällen.

Helt rätt, inte riktigt det svaret jag förväntade mig, men jag tror i a f jag förstår vad du menar. 🥰

Men har någon några idéer kring varför just aux-kanalen verkar vara den som ställer till det?

Vill ju kunna använda mig av aux utan att problem uppstår, det är ju trots allt en ganska användbar funktion. 😄

Link to comment
Dela på andra sajter

Bli medlem (kostnadsfritt) eller logga in för att kommentera

Du behöver vara medlem för att delta i communityn

Bli medlem (kostnadsfritt)

Bli medlem kostnadsfritt i vår community genom att registrera dig. Det är enkelt och kostar inget!

Bli medlem nu (kostnadsfritt)

Logga in

Har du redan en inloggning?
Logga in här.

Logga in nu
×
×
  • Skapa ny...