Swanman's Horizon

性欲をもてあましつつなんらかの話をするよ。

ユニットが使用しているシンボルの一覧を出力する

概要

「--symbol-report」オプションを使うことで、各ユニットが使用しているシンボルの一覧を.symbol_reportファイルとして出力できるようになります。

方法

「プロジェクトオプション」の「コンパイラに渡す追加オプション」に「--symbol-report」を指定します。

正しく指定されていれば、ビルド後にユニットの出力ディレクトリに対して.symbol_reportファイルが生成されます。

サンプル

新規フォームを生成し、そのままビルドを行った場合、このようなファイルが生成されます。

<?xml version="1.0" encoding="UTF-8"?>
<unit name="Unit1">
  <uses name="Vcl.Dialogs">
  </uses>
  <uses name="Vcl.Forms">
    <symbol name="TForm"/>
    <symbol name="TCustomForm.AlignControls"/>
    <symbol name="TCustomForm.ClientWndProc"/>
    <symbol name="TCustomForm.CreateParams"/>
    <symbol name="TCustomForm.CreateWindowHandle"/>
    <symbol name="TCustomForm.CreateWnd"/>
    <symbol name="TCustomForm.DefineProperties"/>
    <symbol name="TCustomForm.DestroyHandle"/>
    <symbol name="TCustomForm.DestroyWindowHandle"/>
    <symbol name="TCustomForm.DoCreate"/>
    <symbol name="TCustomForm.DoDestroy"/>
    <symbol name="TCustomForm.DoThumbButtonNotify"/>
    <symbol name="TCustomForm.DoWindowPreviewRequest"/>
    <symbol name="TCustomForm.DoThumbPreviewRequest"/>
    <symbol name="TCustomForm.GetClientRect"/>
    <symbol name="TCustomForm.GetFloating"/>
    <symbol name="TCustomForm.Loaded"/>
    <symbol name="TCustomForm.Notification"/>
    <symbol name="TCustomForm.PaintWindow"/>
    <symbol name="TCustomForm.GetDesignDpi"/>
    <symbol name="TCustomForm.ScaleForCurrentDpi"/>
    <symbol name="TCustomForm.ReadState"/>
    <symbol name="TCustomForm.RequestAlign"/>
    <symbol name="TCustomForm.SetParentBiDiMode"/>
    <symbol name="TCustomForm.SetParent"/>
    <symbol name="TCustomForm.UpdateActions"/>
    <symbol name="TCustomForm.ValidateRename"/>
    <symbol name="TCustomForm.WndProc"/>
    <symbol name="TCustomForm.Resizing"/>
    <symbol name="TCustomForm.QueryInterface"/>
    <symbol name="TCustomForm.Create"/>
    <symbol name="TCustomForm.CreateNew"/>
    <symbol name="TCustomForm.Destroy"/>
    <symbol name="TCustomForm.ScaleForPPI"/>
    <symbol name="TCustomForm.CloseQuery"/>
    <symbol name="TCustomForm.DefaultHandler"/>
    <symbol name="TCustomForm.SetFocus"/>
    <symbol name="TCustomForm.SetFocusedControl"/>
    <symbol name="TCustomForm.ShowModal"/>
    <symbol name="TCustomForm.WantChildKey"/>
    <symbol name="TCustomForm.AfterConstruction"/>
    <symbol name="TCustomForm.BeforeDestruction"/>
    <symbol name="TScrollingWinControl.AdjustClientRect"/>
    <symbol name="TScrollingWinControl.AutoScrollEnabled"/>
    <symbol name="TScrollingWinControl.AutoScrollInView"/>
    <symbol name="TScrollingWinControl.DoGesture"/>
    <symbol name="TScrollingWinControl.DoGetGestureOptions"/>
    <symbol name=".TForm"/>
  </uses>
  <uses name="Vcl.Controls">
    <symbol name="TWinControl.UpdateStyleElements"/>
    <symbol name="TWinControl.AsyncSchedule"/>
    <symbol name="TWinControl.AssignTo"/>
    <symbol name="TWinControl.CanAutoSize"/>
    <symbol name="TWinControl.CanResize"/>
    <symbol name="TWinControl.ConstrainedResize"/>
    <symbol name="TWinControl.CreateHandle"/>
    <symbol name="TWinControl.CustomAlignInsertBefore"/>
    <symbol name="TWinControl.CustomAlignPosition"/>
    <symbol name="TWinControl.DestroyWnd"/>
    <symbol name="TWinControl.DockReplaceDockClient"/>
    <symbol name="TWinControl.GetClientOrigin"/>
    <symbol name="TWinControl.GetControlExtents"/>
    <symbol name="TWinControl.GetDeviceContext"/>
    <symbol name="TWinControl.ResetIme"/>
    <symbol name="TWinControl.ScaleControlsForDpi"/>
    <symbol name="TWinControl.SetIme"/>
    <symbol name="TWinControl.SetParentBackground"/>
    <symbol name="TWinControl.SetParentDoubleBuffered"/>
    <symbol name="TWinControl.ShowControl"/>
    <symbol name="TWinControl.UpdateControlOriginalParentSize"/>
    <symbol name="TWinControl.UpdateTIPStatus"/>
    <symbol name="TWinControl.Invalidate"/>
    <symbol name="TWinControl.Repaint"/>
    <symbol name="TWinControl.SetBounds"/>
    <symbol name="TWinControl.Update"/>
    <symbol name="TControl.GetParentCurrentDpi"/>
    <symbol name="TControl.CreateTouchManager"/>
    <symbol name="TControl.GetAction"/>
    <symbol name="TControl.GetEnabled"/>
    <symbol name="TControl.GetFloatingDockSiteClass"/>
    <symbol name="TControl.DefaultScalingFlags"/>
    <symbol name="TControl.SetAutoSize"/>
    <symbol name="TControl.SetDragMode"/>
    <symbol name="TControl.SetEnabled"/>
    <symbol name="TControl.SetName"/>
    <symbol name="TControl.SetBiDiMode"/>
    <symbol name="TControl.SetStyleElements"/>
    <symbol name="TControl.GetDragImages"/>
    <symbol name="TControl.InitiateAction"/>
  </uses>
  <uses name="Vcl.Graphics">
  </uses>
  <uses name="System.Classes">
    <symbol name="TComponent.CanObserve"/>
    <symbol name="TComponent.ObserverAdded"/>
    <symbol name="TComponent.GetObservers"/>
    <symbol name="TComponent.UpdateRegistry"/>
    <symbol name="TComponent.WriteState"/>
    <symbol name="TComponent.SafeCallException"/>
    <symbol name="TComponent.UpdateAction"/>
    <symbol name="TPersistent.Assign"/>
  </uses>
  <uses name="System.Variants">
  </uses>
  <uses name="System.SysUtils">
  </uses>
  <uses name="Winapi.Messages">
  </uses>
  <uses name="Winapi.Windows">
  </uses>
  <uses name="SysInit">
  </uses>
  <uses name="System">
    <symbol name="TObject.Equals"/>
    <symbol name="TObject.GetHashCode"/>
    <symbol name="TObject.ToString"/>
    <symbol name="TObject.Dispatch"/>
    <symbol name="TObject.NewInstance"/>
    <symbol name="TObject.FreeInstance"/>
  </uses>
</unit>