diff --git a/.gitattributes b/.gitattributes
index 4935afab5b..0f625f3c52 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -3653,6 +3653,7 @@ debugger/fpdebug/dbgsymbols.pas svneol=native#text/pascal
 debugger/fpdebug/dbgutil.pp svneol=native#text/pascal
 debugger/fpdebug/dbgwinextra.pp svneol=native#text/pascal
 debugger/fpdebug/fpd/README.txt svneol=native#text/plain
+debugger/fpdebug/fpd/fpd.lpi svneol=native#text/pascal
 debugger/fpdebug/fpd/fpd.lpr svneol=native#text/pascal
 debugger/fpdebug/fpd/fpdcommand.pas svneol=native#text/pascal
 debugger/fpdebug/fpd/fpdglobal.pas svneol=native#text/pascal
diff --git a/debugger/fpdebug/dbgsymbols.pas b/debugger/fpdebug/dbgsymbols.pas
index e0697b2cdc..ed91941381 100644
--- a/debugger/fpdebug/dbgsymbols.pas
+++ b/debugger/fpdebug/dbgsymbols.pas
@@ -38,7 +38,7 @@ unit DbgSymbols;
 interface
 
 uses
-  Windows, Classes, SysUtils, DbgClasses, DbgWinExtra, DbgPETypes, DbgDwarf;
+  Windows, Classes, SysUtils, DbgClasses, DbgWinExtra, DbgPETypes, DbgDwarf, DbgUtil;
   
 
 procedure AddSymbols(AParent: TDbgSymbol; AModule: THandle);
diff --git a/debugger/fpdebug/fpd/fpd.lpi b/debugger/fpdebug/fpd/fpd.lpi
new file mode 100644
index 0000000000..8fc73d9860
--- /dev/null
+++ b/debugger/fpdebug/fpd/fpd.lpi
@@ -0,0 +1,85 @@
+<?xml version="1.0"?>
+<CONFIG>
+  <ProjectOptions>
+    <Version Value="9"/>
+    <PathDelim Value="\"/>
+    <General>
+      <Flags>
+        <MainUnitHasCreateFormStatements Value="False"/>
+        <MainUnitHasTitleStatement Value="False"/>
+        <UseDefaultCompilerOptions Value="True"/>
+      </Flags>
+      <SessionStorage Value="InProjectDir"/>
+      <MainUnit Value="0"/>
+      <Title Value="fpd"/>
+      <UseAppBundle Value="False"/>
+      <ResourceType Value="res"/>
+    </General>
+    <i18n>
+      <EnableI18N LFM="False"/>
+    </i18n>
+    <VersionInfo>
+      <StringTable ProductVersion=""/>
+    </VersionInfo>
+    <BuildModes Count="1">
+      <Item1 Name="Default" Default="True"/>
+    </BuildModes>
+    <PublishOptions>
+      <Version Value="2"/>
+      <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
+      <ExcludeFileFilter Value="*.(bak|ppu|o|so);*~;backup"/>
+    </PublishOptions>
+    <RunParams>
+      <local>
+        <FormatVersion Value="1"/>
+      </local>
+    </RunParams>
+    <RequiredPackages Count="1">
+      <Item1>
+        <PackageName Value="LCLBase"/>
+      </Item1>
+    </RequiredPackages>
+    <Units Count="2">
+      <Unit0>
+        <Filename Value="fpd.lpr"/>
+        <IsPartOfProject Value="True"/>
+      </Unit0>
+      <Unit1>
+        <Filename Value="..\dbgclasses.pp"/>
+        <IsPartOfProject Value="True"/>
+        <UnitName Value="dbgclasses"/>
+      </Unit1>
+    </Units>
+  </ProjectOptions>
+  <CompilerOptions>
+    <Version Value="11"/>
+    <PathDelim Value="\"/>
+    <Target>
+      <Filename Value="bin\$(TargetCPU)-$(TargetOS)\fpd"/>
+    </Target>
+    <SearchPaths>
+      <IncludeFiles Value="$(ProjOutDir)"/>
+      <OtherUnitFiles Value=".."/>
+      <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
+    </SearchPaths>
+    <Other>
+      <CompilerMessages>
+        <MsgFileName Value=""/>
+      </CompilerMessages>
+      <CompilerPath Value="$(CompPath)"/>
+    </Other>
+  </CompilerOptions>
+  <Debugging>
+    <Exceptions Count="3">
+      <Item1>
+        <Name Value="EAbort"/>
+      </Item1>
+      <Item2>
+        <Name Value="ECodetoolError"/>
+      </Item2>
+      <Item3>
+        <Name Value="EFOpenError"/>
+      </Item3>
+    </Exceptions>
+  </Debugging>
+</CONFIG>
diff --git a/debugger/fpdebug/fpd/fpdcommand.pas b/debugger/fpdebug/fpd/fpdcommand.pas
index 381ecdfa81..66974b4897 100644
--- a/debugger/fpdebug/fpd/fpdcommand.pas
+++ b/debugger/fpdebug/fpd/fpdcommand.pas
@@ -36,7 +36,7 @@ unit FPDCommand;
 interface
 
 uses
-  SysUtils, Classes, Windows, DbgWinExtra, DbgClasses, LCLProc;
+  SysUtils, Classes, Windows, LCLProc, DbgWinExtra, DbgClasses;
 
 procedure HandleCommand(ACommand: String);
 
diff --git a/debugger/fpdebug/fpdd/fpdumpdwarf.lpi b/debugger/fpdebug/fpdd/fpdumpdwarf.lpi
index 8f6b9fa1c3..dd1c2b52d7 100644
--- a/debugger/fpdebug/fpdd/fpdumpdwarf.lpi
+++ b/debugger/fpdebug/fpdd/fpdumpdwarf.lpi
@@ -1,26 +1,36 @@
 <?xml version="1.0"?>
 <CONFIG>
   <ProjectOptions>
+    <Version Value="9"/>
     <PathDelim Value="\"/>
-    <Version Value="7"/>
     <General>
+      <Flags>
+        <MainUnitHasCreateFormStatements Value="False"/>
+        <MainUnitHasTitleStatement Value="False"/>
+      </Flags>
+      <SessionStorage Value="InProjectDir"/>
       <MainUnit Value="0"/>
-      <TargetFileExt Value=".exe"/>
-      <ActiveEditorIndexAtStart Value="3"/>
+      <Title Value="fpdumpdwarf"/>
+      <UseAppBundle Value="False"/>
+      <ResourceType Value="res"/>
     </General>
+    <i18n>
+      <EnableI18N LFM="False"/>
+    </i18n>
     <VersionInfo>
-      <ProjectVersion Value=""/>
+      <StringTable ProductVersion=""/>
     </VersionInfo>
+    <BuildModes Count="1">
+      <Item1 Name="Default" Default="True"/>
+    </BuildModes>
     <PublishOptions>
       <Version Value="2"/>
-      <IgnoreBinaries Value="False"/>
       <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
-      <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
+      <ExcludeFileFilter Value="*.(bak|ppu|o|so);*~;backup"/>
     </PublishOptions>
     <RunParams>
       <local>
         <FormatVersion Value="1"/>
-        <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
       </local>
     </RunParams>
     <RequiredPackages Count="1">
@@ -28,86 +38,33 @@
         <PackageName Value="LCL"/>
       </Item1>
     </RequiredPackages>
-    <Units Count="4">
+    <Units Count="2">
       <Unit0>
         <Filename Value="fpdumpdwarf.lpr"/>
         <IsPartOfProject Value="True"/>
-        <CursorPos X="45" Y="12"/>
-        <TopLine Value="1"/>
-        <EditorIndex Value="0"/>
-        <UsageCount Value="20"/>
-        <Loaded Value="True"/>
       </Unit0>
       <Unit1>
-        <Filename Value="..\dbgclasses.pp"/>
-        <UnitName Value="DbgClasses"/>
-        <CursorPos X="22" Y="4"/>
-        <TopLine Value="1"/>
-        <EditorIndex Value="1"/>
-        <UsageCount Value="10"/>
-        <Loaded Value="True"/>
+        <Filename Value="..\dbgdwarf.pas"/>
+        <IsPartOfProject Value="True"/>
+        <UnitName Value="dbgdwarf"/>
       </Unit1>
-      <Unit2>
-        <Filename Value="..\dbgdwarf.pas"/>
-        <UnitName Value="DbgDwarf"/>
-        <CursorPos X="12" Y="1621"/>
-        <TopLine Value="1601"/>
-        <EditorIndex Value="2"/>
-        <UsageCount Value="10"/>
-        <Loaded Value="True"/>
-      </Unit2>
-      <Unit3>
-        <Filename Value="..\dbgsymbols.pas"/>
-        <UnitName Value="DbgSymbols"/>
-        <CursorPos X="102" Y="49"/>
-        <TopLine Value="23"/>
-        <EditorIndex Value="3"/>
-        <UsageCount Value="10"/>
-        <Bookmarks Count="1">
-          <Item0 X="35" Y="109" ID="1"/>
-        </Bookmarks>
-        <Loaded Value="True"/>
-      </Unit3>
     </Units>
-    <JumpHistory Count="7" HistoryIndex="6">
-      <Position1>
-        <Filename Value="..\dbgclasses.pp"/>
-        <Caret Line="1" Column="1" TopLine="1"/>
-      </Position1>
-      <Position2>
-        <Filename Value="..\dbgdwarf.pas"/>
-        <Caret Line="1" Column="1" TopLine="1"/>
-      </Position2>
-      <Position3>
-        <Filename Value="..\dbgdwarf.pas"/>
-        <Caret Line="1105" Column="29" TopLine="1096"/>
-      </Position3>
-      <Position4>
-        <Filename Value="..\dbgdwarf.pas"/>
-        <Caret Line="1122" Column="29" TopLine="1087"/>
-      </Position4>
-      <Position5>
-        <Filename Value="..\dbgdwarf.pas"/>
-        <Caret Line="1268" Column="35" TopLine="1250"/>
-      </Position5>
-      <Position6>
-        <Filename Value="..\dbgsymbols.pas"/>
-        <Caret Line="1" Column="1" TopLine="1"/>
-      </Position6>
-      <Position7>
-        <Filename Value="..\dbgsymbols.pas"/>
-        <Caret Line="42" Column="3" TopLine="31"/>
-      </Position7>
-    </JumpHistory>
   </ProjectOptions>
   <CompilerOptions>
-    <Version Value="8"/>
+    <Version Value="11"/>
     <PathDelim Value="\"/>
+    <Target>
+      <Filename Value="bin\$(TargetCPU)-$(TargetOS)\fpdumpdwarf"/>
+    </Target>
     <SearchPaths>
-      <IncludeFiles Value="$(ProjOutDir)\"/>
-      <OtherUnitFiles Value="..\"/>
+      <IncludeFiles Value="$(ProjOutDir)"/>
+      <OtherUnitFiles Value=".."/>
+      <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
     </SearchPaths>
     <Other>
+      <CompilerMessages>
+        <MsgFileName Value=""/>
+      </CompilerMessages>
       <CompilerPath Value="$(CompPath)"/>
     </Other>
   </CompilerOptions>
diff --git a/debugger/fpdebug/fpdd/fpdumpdwarf.lpr b/debugger/fpdebug/fpdd/fpdumpdwarf.lpr
index 76e1ec7772..d69434cfd2 100644
--- a/debugger/fpdebug/fpdd/fpdumpdwarf.lpr
+++ b/debugger/fpdebug/fpdd/fpdumpdwarf.lpr
@@ -36,8 +36,8 @@ program FPDumpDwarf;
 {$mode objfpc}{$H+}
 
 uses
-  Classes, Windows, SysUtils, WinDDwarf, WinDPETypes, WinDDwarfConst,
-  WinDSymbols, WinDLoader, maps;
+  Classes, Windows, SysUtils, maps,
+  DbgPETypes, DbgDwarfConst, DbgSymbols, DbgLoader, DbgDwarf;
 
 var
   n, idx: Integer;
diff --git a/debugger/fpdebug/test/asmtest.lpi b/debugger/fpdebug/test/asmtest.lpi
index 13317a5152..a6123bbbd6 100644
--- a/debugger/fpdebug/test/asmtest.lpi
+++ b/debugger/fpdebug/test/asmtest.lpi
@@ -1,25 +1,33 @@
 <?xml version="1.0"?>
 <CONFIG>
   <ProjectOptions>
+    <Version Value="9"/>
     <PathDelim Value="\"/>
-    <Version Value="5"/>
     <General>
+      <SessionStorage Value="InProjectDir"/>
       <MainUnit Value="0"/>
-      <IconPath Value="./"/>
-      <TargetFileExt Value=".exe"/>
-      <ActiveEditorIndexAtStart Value="0"/>
+      <Title Value="asmtest"/>
+      <ResourceType Value="res"/>
+      <UseXPManifest Value="True"/>
+      <Icon Value="0"/>
     </General>
-    <LazDoc Paths=""/>
+    <i18n>
+      <EnableI18N LFM="False"/>
+    </i18n>
+    <VersionInfo>
+      <StringTable ProductVersion=""/>
+    </VersionInfo>
+    <BuildModes Count="1">
+      <Item1 Name="Default" Default="True"/>
+    </BuildModes>
     <PublishOptions>
       <Version Value="2"/>
-      <IgnoreBinaries Value="False"/>
       <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
-      <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
+      <ExcludeFileFilter Value="*.(bak|ppu|o|so);*~;backup"/>
     </PublishOptions>
     <RunParams>
       <local>
         <FormatVersion Value="1"/>
-        <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
       </local>
     </RunParams>
     <RequiredPackages Count="1">
@@ -27,41 +35,37 @@
         <PackageName Value="LCL"/>
       </Item1>
     </RequiredPackages>
-    <Units Count="2">
+    <Units Count="3">
       <Unit0>
         <Filename Value="asmtest.lpr"/>
         <IsPartOfProject Value="True"/>
-        <UnitName Value="asmtest"/>
-        <CursorPos X="70" Y="18"/>
-        <TopLine Value="1"/>
-        <EditorIndex Value="2"/>
-        <UsageCount Value="20"/>
-        <Loaded Value="True"/>
       </Unit0>
       <Unit1>
-        <Filename Value="asmtestunit.pas"/>
-        <ComponentName Value="Form1"/>
+        <Filename Value="..\dbgdisasx86.pp"/>
         <IsPartOfProject Value="True"/>
-        <ResourceFilename Value="asmtestunit.lrs"/>
-        <UnitName Value="AsmTestUnit"/>
-        <CursorPos X="34" Y="53"/>
-        <TopLine Value="43"/>
-        <EditorIndex Value="0"/>
-        <UsageCount Value="20"/>
-        <Loaded Value="True"/>
+        <UnitName Value="dbgdisasx86"/>
       </Unit1>
+      <Unit2>
+        <Filename Value="asmtestunit.pas"/>
+        <IsPartOfProject Value="True"/>
+        <ComponentName Value="Form1"/>
+        <HasResources Value="True"/>
+        <ResourceBaseClass Value="Form"/>
+        <UnitName Value="AsmTestUnit"/>
+      </Unit2>
     </Units>
   </ProjectOptions>
   <CompilerOptions>
-    <Version Value="5"/>
+    <Version Value="11"/>
     <PathDelim Value="\"/>
+    <Target>
+      <Filename Value="bin\$(TargetCPU)-$(TargetOS)\asmtest"/>
+    </Target>
     <SearchPaths>
-      <OtherUnitFiles Value="..\"/>
-      <SrcPath Value="$(LazarusDir)\lcl\;$(LazarusDir)\lcl\interfaces\$(LCLWidgetType)\"/>
+      <IncludeFiles Value="$(ProjOutDir)"/>
+      <OtherUnitFiles Value=".."/>
+      <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
     </SearchPaths>
-    <CodeGeneration>
-      <Generate Value="Faster"/>
-    </CodeGeneration>
     <Linking>
       <Options>
         <Win32>
@@ -70,8 +74,23 @@
       </Options>
     </Linking>
     <Other>
+      <CompilerMessages>
+        <MsgFileName Value=""/>
+      </CompilerMessages>
       <CompilerPath Value="$(CompPath)"/>
     </Other>
-    <CompileReasons Run="False"/>
   </CompilerOptions>
+  <Debugging>
+    <Exceptions Count="3">
+      <Item1>
+        <Name Value="EAbort"/>
+      </Item1>
+      <Item2>
+        <Name Value="ECodetoolError"/>
+      </Item2>
+      <Item3>
+        <Name Value="EFOpenError"/>
+      </Item3>
+    </Exceptions>
+  </Debugging>
 </CONFIG>
diff --git a/debugger/fpdebug/test/asmtest.lpr b/debugger/fpdebug/test/asmtest.lpr
index 7befab4888..7815b19d04 100644
--- a/debugger/fpdebug/test/asmtest.lpr
+++ b/debugger/fpdebug/test/asmtest.lpr
@@ -7,8 +7,9 @@ uses
   cthreads,
   {$ENDIF}{$ENDIF}
   Interfaces, // this includes the LCL widgetset
-  Forms
-  { add your units here }, AsmTestUnit;
+  Forms,
+  AsmTestUnit,
+  dbgdisasx86;
 
 begin
   Application.Initialize;
diff --git a/debugger/fpdebug/test/asmtestunit.lfm b/debugger/fpdebug/test/asmtestunit.lfm
index e405410eba..93cf7b5e6b 100644
--- a/debugger/fpdebug/test/asmtestunit.lfm
+++ b/debugger/fpdebug/test/asmtestunit.lfm
@@ -1,34 +1,36 @@
 object Form1: TForm1
-  Caption = 'AsmTest'
-  ClientHeight = 224
-  ClientWidth = 400
-  PixelsPerInch = 120
-  HorzScrollBar.Page = 399
-  VertScrollBar.Page = 223
   Left = 435
   Height = 224
   Top = 232
   Width = 400
+  HorzScrollBar.Page = 399
+  VertScrollBar.Page = 223
+  Caption = 'AsmTest'
+  ClientHeight = 224
+  ClientWidth = 400
+  LCLVersion = '1.1'
   object Label1: TLabel
-    Caption = 'Enter hex values separated by spaces here'
-    Color = clNone
-    ParentColor = False
     Left = 8
-    Height = 18
+    Height = 15
     Top = 8
-    Width = 263
+    Width = 218
+    Caption = 'Enter hex values separated by spaces here'
+    ParentColor = False
   end
   object Label2: TLabel
+    Left = 8
+    Height = 15
+    Top = 173
+    Width = 38
     Anchors = [akLeft, akBottom]
     Caption = 'Output'
-    Color = clNone
     ParentColor = False
-    Left = 8
-    Height = 17
-    Top = 171
-    Width = 45
   end
   object txtCode: TMemo
+    Left = 8
+    Height = 135
+    Top = 32
+    Width = 384
     Anchors = [akTop, akLeft, akRight, akBottom]
     Lines.Strings = (
       '90'
@@ -43,27 +45,23 @@ object Form1: TForm1
     )
     ScrollBars = ssVertical
     TabOrder = 0
-    Left = 8
-    Height = 135
-    Top = 32
-    Width = 384
   end
   object txtOutput: TEdit
-    Anchors = [akLeft, akRight, akBottom]
-    ReadOnly = True
-    TabOrder = 1
     Left = 8
     Height = 23
     Top = 191
     Width = 384
+    Anchors = [akLeft, akRight, akBottom]
+    ReadOnly = True
+    TabOrder = 1
   end
   object chk64Bit: TCheckBox
+    Left = 304
+    Height = 19
+    Top = 9
+    Width = 49
     Caption = '64 bit'
     TabOrder = 2
-    Left = 304
-    Height = 17
-    Top = 9
-    Width = 55
   end
   object Timer1: TTimer
     Interval = 250
diff --git a/debugger/fpdebug/test/asmtestunit.pas b/debugger/fpdebug/test/asmtestunit.pas
index f9bf8fbbda..28e4f5321b 100644
--- a/debugger/fpdebug/test/asmtestunit.pas
+++ b/debugger/fpdebug/test/asmtestunit.pas
@@ -6,8 +6,10 @@ unit AsmTestUnit;
 interface
 
 uses
-  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, windisas,
-  ExtCtrls, LCLProc, Math;
+  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
+  ExtCtrls, LCLProc, Math,
+
+  DbgDisasX86;
 
 type