dnsmasq quits with "abort"
I had the same symptoms that were described in the question as well as a new and stale PID file in /var/run/dnsmasq.pid every 10 seconds. I am working with dnsmasq 2.77 installed via Homebrew, and macOS 10.12.5. I had 29,000+ hosts defined in /etc/hosts, which was fine until some point - upgrading macOS or dnsmasq, perhaps.

I made a backup of /etc/hosts and then removed all lines from the hosts file except as follows.

127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost

255.255.255.255 broadcasthost


After trying it with the minimal hosts file, I found dnsmasq working.

ps aux | grep dnsmasq
sudo lsof -n -i4TCP:53 | grep 'LISTEN'


But I didn't lose the definitions of hosts to block. They were migrated to the dnsmasq configuration file. A host definition in /etc/hosts looks like the following sample.

0.0.0.0 analytics.google.com


The corresponding definition in dnsmasq.conf looks like the following sample.

address=/analytics.google.com/0.0.0.0


Encouraged, I then added back to the hosts file all of my own definitions for my home LAN, my work LAN, some remote host nicknames, and local virtual hosts.