mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-07 20:41:37 +02:00
* Added mac-x86 and arm target detection
git-svn-id: trunk@10792 -
This commit is contained in:
parent
ebefd69526
commit
cb53dafe02
@ -2021,11 +2021,33 @@ function TGDBMIDebugger.StartDebugging(const AContinueCommand: String): Boolean;
|
|||||||
case StringCase(AFileType, [
|
case StringCase(AFileType, [
|
||||||
'efi-app-ia32', 'elf32-i386',
|
'efi-app-ia32', 'elf32-i386',
|
||||||
'elf64-x86-64',
|
'elf64-x86-64',
|
||||||
'mach-o-be'
|
'mach-o-be',
|
||||||
|
'mach-o-le',
|
||||||
|
'pei-arm-little',
|
||||||
|
'pei-arm-big'
|
||||||
], True, False) of
|
], True, False) of
|
||||||
0..1: FTargetCPU := 'i386';
|
0..1: FTargetCPU := 'x86';
|
||||||
2: FTargetCPU := 'x86_64';
|
2: FTargetCPU := 'x86_64';
|
||||||
3: FTargetCPU := FGDBCPU; //mach-o
|
3: begin
|
||||||
|
//mach-o-be
|
||||||
|
FTargetIsBE := True;
|
||||||
|
if FGDBCPU <> ''
|
||||||
|
then FTargetCPU := FGDBCPU
|
||||||
|
else FTargetCPU := 'powerpc'; // guess
|
||||||
|
end;
|
||||||
|
4: begin
|
||||||
|
//mach-o-le
|
||||||
|
if FGDBCPU <> ''
|
||||||
|
then FTargetCPU := FGDBCPU
|
||||||
|
else FTargetCPU := 'x86'; // guess
|
||||||
|
end;
|
||||||
|
5: begin
|
||||||
|
FTargetCPU := 'arm';
|
||||||
|
end;
|
||||||
|
6: begin
|
||||||
|
FTargetIsBE := True;
|
||||||
|
FTargetCPU := 'arm';
|
||||||
|
end;
|
||||||
else
|
else
|
||||||
// Unknown filetype, use GDB cpu
|
// Unknown filetype, use GDB cpu
|
||||||
DebugLn('[WARNING] [Debugger.TargetInfo] Unknown FileType: %s, using GDB cpu', [AFileType]);
|
DebugLn('[WARNING] [Debugger.TargetInfo] Unknown FileType: %s, using GDB cpu', [AFileType]);
|
||||||
@ -2034,22 +2056,22 @@ function TGDBMIDebugger.StartDebugging(const AContinueCommand: String): Boolean;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
case StringCase(FTargetCPU, [
|
case StringCase(FTargetCPU, [
|
||||||
'i386', 'i486', 'i586', 'i686',
|
'x86', 'i386', 'i486', 'i586', 'i686',
|
||||||
'ia64', 'x86_64', 'powerpc',
|
'ia64', 'x86_64', 'powerpc',
|
||||||
'sparc', 'arm'
|
'sparc', 'arm'
|
||||||
], True, False) of
|
], True, False) of
|
||||||
0..3: begin // ix86
|
0..4: begin // x86
|
||||||
FTargetRegisters[0] := '$eax';
|
FTargetRegisters[0] := '$eax';
|
||||||
FTargetRegisters[1] := '$edx';
|
FTargetRegisters[1] := '$edx';
|
||||||
FTargetRegisters[2] := '$ecx';
|
FTargetRegisters[2] := '$ecx';
|
||||||
end;
|
end;
|
||||||
4, 5: begin // ia64, x86_64
|
5, 6: begin // ia64, x86_64
|
||||||
FTargetRegisters[0] := '$rdi';
|
FTargetRegisters[0] := '$rdi';
|
||||||
FTargetRegisters[1] := '$rsi';
|
FTargetRegisters[1] := '$rsi';
|
||||||
FTargetRegisters[2] := '$rdx';
|
FTargetRegisters[2] := '$rdx';
|
||||||
FTargetPtrSize := 8;
|
FTargetPtrSize := 8;
|
||||||
end;
|
end;
|
||||||
6: begin // powerpc
|
7: begin // powerpc
|
||||||
FTargetIsBE := True;
|
FTargetIsBE := True;
|
||||||
// alltough darwin can start with r2, it seems that all OS start with r3
|
// alltough darwin can start with r2, it seems that all OS start with r3
|
||||||
// if UpperCase(FTargetOS) = 'DARWIN'
|
// if UpperCase(FTargetOS) = 'DARWIN'
|
||||||
@ -2064,13 +2086,13 @@ function TGDBMIDebugger.StartDebugging(const AContinueCommand: String): Boolean;
|
|||||||
FTargetRegisters[2] := '$r5';
|
FTargetRegisters[2] := '$r5';
|
||||||
// end;
|
// end;
|
||||||
end;
|
end;
|
||||||
7: begin // sparc
|
8: begin // sparc
|
||||||
FTargetIsBE := True;
|
FTargetIsBE := True;
|
||||||
FTargetRegisters[0] := '$g1';
|
FTargetRegisters[0] := '$g1';
|
||||||
FTargetRegisters[1] := '$o0';
|
FTargetRegisters[1] := '$o0';
|
||||||
FTargetRegisters[2] := '$o1';
|
FTargetRegisters[2] := '$o1';
|
||||||
end;
|
end;
|
||||||
8: begin // arm
|
9: begin // arm
|
||||||
FTargetRegisters[0] := '$r0';
|
FTargetRegisters[0] := '$r0';
|
||||||
FTargetRegisters[1] := '$r1';
|
FTargetRegisters[1] := '$r1';
|
||||||
FTargetRegisters[2] := '$r2';
|
FTargetRegisters[2] := '$r2';
|
||||||
|
Loading…
Reference in New Issue
Block a user