Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
NTUI : Listview
#1
HalloThilo,

Es betrifft zwar auch AIDE, aber ich schreibe es mal bei Ntui rein weil es auch alle anderen Programme betrifft. (Wie mein Copacabana oder Tincture)

Und zwar kracht AIDE immer bei einem Aufruf der Listviewbefehle. Ich kann nicht sagen ob das nun unter OS4 auch so ist da mir im Moment die Hardware fehlt, aber dank MorphOs (wo die offsetausgabe wesentlich besser ist) habe ich das Problem einkreisen können auf den Befehl ntui_addlistIItem{}. Auch ntui_ClearListView{} ist betroffen.

Wenn du möchtest, kann ich dir genaueres schreiben
Zitieren
#2
ICh habe hier unter OS3.9 keine Hit von AIDE, kannst du mal die Hits hier einstellen damit man mal vergleichen kann.
Zitieren
#3
tomsmart1 schrieb:ICh habe hier unter OS3.9 keine Hit von AIDE, kannst du mal die Hits hier einstellen damit man mal vergleichen kann.

Ich weis zwar nicht wie du vergleichen willst ohne selbst Hits zu haben, aber bitte gut. das hier bekomme ich wenn ich bei AIDE die Preferences aus dem Menü aufrufe:

18:01:16 03-Okt-14
Alert 0x0100000f <AN_BadFreeAddr>
Task 0x2d026ab8 <AIDE> Type 13 Pri 0
Flags 0x8 State 4 IDNestCnt -1 TDNestCnt -1
SigAlloc 0xff00ffff SigWait 0x00000010 SigRecvd 0x38000120 SigExcept 0x00000000
ExceptCode 0x1011ebbc ExceptData 0x00000000 TrapCode 0x1011ebb4 TrapData 0x00000000
Switch 0x00000000 Launch 0x00000000 UserData 0x00000000
SPLower 0x2d026b9c SPUpper 0x2d028b9c SPReg 0x2d0289a4
MemList 0x2cdcd9c0 Entries 0x1
Address 0x2cfa3310 Size 0x14
MemList 0x2cdd03f0 Entries 0x1
Address 0x2d026ab8 Size 0x20ec
ETask 0x2d028bb4
MemPool 0x2cda3b60 PPCLibData 0x00000000
PPCSPLower 0x2c405ecc PPCSPUpper 0x2c40dec0
PPCTrapMsgPort 0x00000000 PPCTrapMessage 0x2cdb5f54
PPCRegFrame 0x2c40d9e0
Private[] 0x00000000 0x00000000 0x00000000 0x00000000
EmulHandle 0x00000000
EmulHandle 0x2c40d890 Type 0x00000004 Flags 0x00000001
SuperHandle 0x10001000 Type 0x00000000
USP 0x00000000 SSP 0x20003780 VBR 0x2000e020
SFC 0x00000000 DFC 0x00000000 CACR 0xa0808000 TC 0x00000000
ITT0 0x00000000 ITT1 0x00000000 DTT0 0x00000000 DTT1 0x00000000
URP 0x00000000 SRP 0x00000000 BUSCR 0x00000000 PCR 0x04310501
Stack: 0x2d028a04
A7[-32] 2d028958 2db6b916 2db6b900 2d6292f4
0x2d544b14 -> AIDE Hunk 0 Offset 0x2aac
0x2d5d19d0 -> AIDE Hunk 0 Offset 0x8f968
0x2d614b78 -> AIDE Hunk 0 Offset 0xd2b10
0x2d615306 -> AIDE Hunk 0 Offset 0xd329e

Die einzelnen Offsets im Verlauf:
Statement Window_Preferences{}
bei ntui_AddListItem{}
usw...

Es ist mir auch aufgefallen das ich immer 1 Zeilennummer abziehen muß wenn ich den Source in AB3 im Ped ansehe....!
Zitieren
#4
Schau mal ob das immer noch so ist, dann guck ich mir das genauer an.
Zitieren
#5
Auch mit Rev274 ist es noch so.

So wie es aussieht ist es aber eher die nutzung der strptr.include

Das kuriose ander Sache ist die, das es mit Debugger nicht passiert beim durchsteppen, sondern nur als Standaloneprogramm...
Zitieren
#6
Sieht nach klassischem Memtrash aus. Beim durchgucken von dem Code ist mir nichts verdächtiges aufgefallen.
Oft kracht es in der strptr.include, nicht weil sie einen bug hätte, aber weil woanders ein String getrashed wurde.

Ich habe ein update gemacht mit neuer Exe und Dbg file. Schau mal ob es immer noch kracht.
Zitieren
#7
Ja das macht es weiterhin.

Ich habe im Moment zwei Probleme

1. der Aufruf von ntui_ClearListView{}
Das ruft in der Schleife ntui_RemListItem{} auf.
darin crasht es dann in der Zeile 1443:
FreePooled_ *listView\memPool blablabla

2. Problem ist dann ntui_addListItem{}
wie schon beschrieben in der strptr.include
Zitieren
#8
Ich vermute das diese Problem auch mit dem Doublebuffering bzw. dem Erzeugen eines Rastports zusammen hängt da in ntui_RemListItem{} ntui_Refresh{*listview,NULL} aufgerufen wird und vermutlich dadurch die Struktur von *listview beschädigt wird was dann im nächsten Durchlauf zu dem Crash führt.
Mit der neuen Revision 477 müsste dann das Problem behoben sein, oder :?:
Zitieren
#9
Nein das Problem ist nicht behoben und liegt scheinbar auch woanders...

Der Guru
0100000F Speziell: Memory-Header nicht gefunden
ShowGuru: AN_BadFreeAddr. Der Funktion FreeMem() wurde eine falsche Adresse übergeben. Dadurch wurde ein falscher Adreßbereich dem Betriebssystem als leer übergeben.

deutet eher auf das Macro !str_Free{} hin, und im umkehrschluss dann doch auf dioe Funktion ntui_addListItem{} oder sehe ich das falsch...?

Der hit kommt auch immer direkt nach strptr_WritePtr{}

Erst dachte ich es liegt am #MEMF_ANY von *str.str = AllocMem_ (clength+#STR_SIZEOFHEADER,#MEMF_ANY)
und habs auf MEMF_CLEAR geändert aber das brachte auch nix
Zitieren
#10
Ok Probiere mal bitte folgendes und ändere die Funktion ntui_AddListItem{}ab indem du am besten in den ersten Zeilen ein

Code:
templabel.s = ""
templabel   = label

Und die If Then Anweisung von label auf templabel umstellst

Code:
If templabel Then str_WritePtr{&*listView....,&templabel}

Wenn das nicht hilft liegt es am *str.str = AllocMem_ (clength+#STR_SIZEOFHEADER,#MEMF_ANY) besser gesagt an der Konstante #STR_SIZEOFHEADER die momentan soweit ich gesehen habe 5 ist, erhöhe sie mal auf 8 oder 10.
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste