handdator

Visa fullständig version : 'Allvarligt fel' vid ändring av notis



Bengt H
2016-01-02, 16:28
Under de veckor jag har prövat förutgåvan har det inträffat ett antal gånger att det uppstått 'Allvarligt fel' (se utskrift som jag bifogat). Det är ingen speciell notistyp, men det är genomgående gamla notiser från 8.2d. Oftast gäller det ändring i texten i en textnotis eller i anteckningarna i vilken notis som helst. Har svårt att se något speciellt mönster i detta. Men jag vill naturligtvis veta hur jag kan undvika detta att inträffa, för ett litet irritationsmoment är det att programmet startas om varje gång.

Christer
2016-01-04, 10:05
Felrapporterat (#2363)

DanielBerglund
2016-01-04, 15:24
Det där har jag sett på annat håll så du är inte ensam. Använder du möjligen kartan i samband med de här ändringarna av notiser?

Bengt H
2016-01-04, 19:15
Nej kartan använde jag inte vid de tillfällen då det har inträffat (faktiskt ganska många gånger nu efter 2½ veckas användning). Varje gång detta sker genereras en felrapport som man kan studera (den har flera flikar i det fönster som kommer upp). Sedan när man stänger fönstret så startas Disgen på nytt om det var det man begärde. Sedan undrar man vad som händer med felrapporten? I början fick jag för mig att de lagrades i en av mapparna, såg några som liknade felrapporter i en av dem, men de har nu försvunnit, och jag minns inte i vilken mapp det var. Är det så att ni går in och hämtar dessa felrapporter?

DanielBerglund
2016-01-04, 20:10
Felrapporterna skickas in till DIS med automatik vid nästa start av Disgen, om du har godkänt det. Sedan ligger de kvar på din dator i 2 månader i en mapp som vanligen är dold i Utforskaren, hos mig är det C:\Users\db\AppData\Local\DIS\Disgen2016\UploadedB ugfiles .

När de har landat på DIS server så sorterar vi upp dem och gör felrapporter på det vi inte sett tidigare.

Ok, kartan är inte inblandad. Har du någon känsla för var du dubbelklickar när det kraschar? I buggfilen ser man alltså att du dubbelklickar någonstans, Disgen försöker då skapa ett nytt fönster och detta misslyckas av okänd anledning, varvid kraschrutan kommer.

Har du tänkt på om du står i en notisdialog och klickar runt i den när det händer, eller om det är när du är i personöversikten och ska öppna en notisdialog för att ändra en notis?

Bengt H
2016-01-04, 21:52
När jag skrev att jag inte hittade felrapporterna så avsåg jag datamappen som jag har på ett externminne. Under AppData på C: hittade jag den. Tack för den länken. Det är inte alltid jag är uppkopplad till Internet när jag använder Disgen, så då kan ingenting skickas. Men ibland är jag uppkopplad samtidigt om jag kör ArkivDigital.

Felet inträffar alltid när jag har öppnat personöversikten och öppnat en notis som jag ändrar och sedan stänger genom att klicka (en gång) på OK. Det är därefter när programmet ska lagra den ändrade notisen som felet uppstår. Sedan efter omstart går jag in och kollar notisen och då är det den ändrade notisen som ligger där, ändringen har alltså blivit lagrad. Dubbel-klickningen härrör kanske från öppnandet av notisen som jag alltid gör genom att dubbelklicka på den.

BrJohan
2016-01-04, 22:58
Som 'åskådare' och inte direkt berörd och dessutom i avsaknad av kunskap om programvarubygge med Delphi (men med 'viss' kunskap om bygge av programvaror i åtskilliga andra miljöer), kan jag ändå inte avstå ifrån att fråga om det vore möjligt att bygga in 'exception'-hantering med 'stackdump'-förmåga i Delphiapplikationer och då i synnerhet i byggen för teständamål - som väl 'förutgåvan' av Disgen är ett exempel på.

DanielBerglund
2016-01-04, 23:15
Jodå, det gör både Disgen 8 och 2016, och stackdumparna är betydligt bättre nu än vad de var tidigare. De skickas också in automatiskt så vi får lite koll på vad som går sönder där ute även om användarna inte felanmäler.

Problemet i just det här fallet och ett par andra är att Disgens egen kod inte är på stacken utan det vi ser är klassbiblioteken. Då ser det ut ungefär så här:


005c89c4 +0b4 disgen.exe Vcl.Controls TWinControl.CreateWnd
00cce18e +006 disgen.exe AdvPanel 4149 +1 TCustomAdvPanel.CreateWnd
005c8f4e +016 disgen.exe Vcl.Controls TWinControl.CreateHandle
005ccd40 +01c disgen.exe Vcl.Controls TWinControl.HandleNeeded
005ccd4d +005 disgen.exe Vcl.Controls TWinControl.GetHandle
005ccedd +009 disgen.exe Vcl.Controls TWinControl.GetClientRect
00ccc41e +03a disgen.exe AdvPanel 3377 +4 TCustomAdvPanel.IsAnchor
00cc5dce +04a disgen.exe AdvPanel 1496 +3 TCustomAdvPanel.MouseDown
005c5a00 +08c disgen.exe Vcl.Controls TControl.DoMouseDown
005c5abf +047 disgen.exe Vcl.Controls TControl.WMLButtonDblClk
00cce4b6 +00e disgen.exe AdvPanel 4273 +1 TCustomAdvPanel.WMLDblClk


och det går alltså att se att man dubbelklickat på något, men inte vad och hur. Då gäller det att fråga runt för att få omständigheterna klara. Kan vi bara reproducera det är det i stort sett fixat.