External: SIGSEGV

Für Fragen rund um die Ide und zum Debugger
Antworten
DieGuteNudel
Beiträge: 2
Registriert: Do 26. Jan 2017, 18:28

External: SIGSEGV

Beitrag von DieGuteNudel »

Guten Tag,

beim Kompilieren meiner Klasse wird mir der allseitsbekannte SIGSEGV-Fehler in Zeile 49 bei "getAuge := auge;" angezeigt. Ich verstehe schlichtweg nicht, warum.

Code: Alles auswählen

unit UWuerfel;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls;
 
type
  TWuerfel = class
 
  protected
    auge: string;
  public
    procedure setAuge;
    function getAuge: string;
    constructor create;
    destructor destroy;
  protected
    procedure init;
 
  end;
 
implementation
 
procedure TWuerfel.init;
begin
  auge := '?';
  randomize;
end;
 
constructor TWuerfel.create;
begin
  init;
end;
 
destructor TWuerfel.destroy;
begin
end;
 
procedure TWuerfel.setAuge;
begin
  auge := floattostr (random(6)+1);
end;
 
function TWuerfel.getAuge: string;
begin
  getAuge := auge;
end;
 
end.


Ich hoffe, mir kann jemand helfen.
Zuletzt geändert von DieGuteNudel am Do 26. Jan 2017, 18:52, insgesamt 1-mal geändert.

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: External: SIGSEGV

Beitrag von Mathias »

Irgendwo im restlich Code greifst du auf TWuerfel zu.

Steht dort irgendwo Wuerfel := TWuerfel.Create oder was ähnliches ?
Wen so etwas fehlt, dann wird ein SIGSEV ausgelöst.

Am besten Postest du den Code, wo Wuerfel verwendet wird.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

DieGuteNudel
Beiträge: 2
Registriert: Do 26. Jan 2017, 18:28

Re: External: SIGSEGV

Beitrag von DieGuteNudel »

Mathias hat geschrieben:Irgendwo im restlich Code greifst du auf TWuerfel zu.

Steht dort irgendwo Wuerfel := TWuerfel.Create oder was ähnliches ?
Wen so etwas fehlt, dann wird ein SIGSEV ausgelöst.

Am besten Postest du den Code, wo Wuerfel verwendet wird.


Hab' den Fehler gefunden. In der gui hatte ich 3 Variablen vom Typ TWuerfel, habe aber nur bei einer davon den constructor aufgerufen.

Antworten