Bjr à tous,
Je suis confronté à un pb franchement gonflant avec le débogueur gdb.
Lorsque j'utilise une variable tableau, gdb me remonte une 'sigsegv' au droit d'une utilisation de tableau dynamique correctement initialisé, erreur qui n'a pas lieu d'être.
Voici la déclaration de ma classe qui pose pb
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 const COLORS_TABLE_SIZE = 256; type TArray256Colors = array of TColor; type { TPalette256 } TPalette256 = class procedure GenerateWeb216Palette; deprecated; procedure GenerateACADPalette; deprecated; procedure GenerateGrayScalePalette; deprecated; private FColorArray : TArray256Colors; procedure ViderTableCouleurs(); public procedure GenerateTOPOROBOTPalette(); function GetColorByIndex(const Idx: Integer):TColor; end;Franchement exaspérant, ce genre de pb qui m'entrave dans mon métier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 procedure TPalette256.GenerateWeb216Palette; var i, j, k : integer; r,g,b : byte; IdxColor : integer; begin AfficherMessage(ClassName+'.GenerateWeb216Palette'); ViderTableCouleurs(); for i:=1 to 6 do for j:=1 to 6 do for k:=1 to 6 do begin IdxColor:=(i-1)*36+ (j-1)*6+ (k-1); r:=255 - (i-1) * 51; g:=255 - (j-1) * 51; b:=255 - (k-1) * 51; FColorArray[IdxColor]:=RGBToColor(r,g,b); end; end; function TPalette256.GetColorByIndex(const Idx: Integer): TColor; begin try Result := self.FColorArray[Idx]; // sous GDB, provoque un External SIGSEGV except Result := clSilver; end; end; procedure TPalette256.ViderTableCouleurs; var i: Integer; begin SetLength(FColorArray, COLORS_TABLE_SIZE); for i:= 0 to COLORS_TABLE_SIZE - 1 do FColorArray[i] := clSilver; end;
Partager