Clear["Global`*"]
f[x_, y_] = ArcCos[x*y];
fd = FunctionDomain[f[x, y], {x, y}, Reals]
(* -1 <= x y <= 1 *)
RegionPlot[fd, {x, -5, 5}, {y, -5, 5},
PlotPoints -> 50,
MaxRecursion -> 5,
FrameLabel -> Automatic]
Plot3D[f[x, y], {x, -5, 5}, {y, -5, 5},
ViewPoint -> Above,
AxesLabel -> Automatic]