A Web search throws up several systems that claim to monitor for broken rails. I don't know how effective or widespread they are.
As Harpo says, often a track circuit will detect a broken rail. However, the design of track circuits is not to intentionally do this. Track circuits are designed to detect when a section is clear of trains, nothing else.
There are many types of track circuit, some of which are less effective at detecting some types of break.
Furthermore, the bonding arrangements (where wires or cables "bypass" sections of rails) means that some breaks in the rail will not cause a break in that section to cause the track circuit to "fail" (show occupied). Indeed, some of these bonding arrangements (especially around points and crossings) are to prevent a broken rail from causing a train NOT to be detected (this type of bonding is called "parallel bonding").
Regardless of the track circuit type and the bonding arrangements, a track circuit cannot detect a break between where the cable or bond wire connects and the physical end of that steel rail (up to the insulated rail joint or IRJ). That's where you get breaks that expand from the fishplate bolt holes and cause the top of the rail to fall out once the crack gets to the top surface.
The U.K. railway has considered keeping track circuits as a broken rail detector, but hasn’t done so. Part of the reason would have been cost.
Note, I can't link to Network Rail documentation, as I don't think I have a copy and it's only available online to Network Rail staff who have access via a log-in.