Faits :
A.
A._ se trouve en détention provisoire depuis le 16 novembre 2014, sous la prévention de menace, de mise en danger de la vie d'autrui et d'infraction à la loi fédérale sur les armes, les accessoires d'armes et les munitions (LArm; RS 514.54). Il lui est notamment reproché d'avoir, sous influence de l'alcool, pointé une arme à feu chargée en direction de la poitrine de B._, qui lui aurait demandé du feu pour sa cigarette.
Par ordonnance du 18 novembre 2014, le Tribunal des mesures de contrainte du canton de Vaud (Tmc) a ordonné la détention de A._ pour une durée de trois mois, en raison d'un risque de récidive. Le 28 novembre 2014, A._ a interjeté un recours contre cette ordonnance auprès de la Chambre des recours pénale du Tribunal cantonal du canton de Vaud (ci-après: le Tribunal cantonal). Après le dépôt du recours, le Ministère public a fait verser au dossier quatre pièces (jugement concernant A._ de 2004, rapport de l'état de santé de celui-ci daté du 2 décembre 2014 et établi par l'Unité de Psychiatrie Ambulatoire du Centre hospitalier universitaire vaudois (CHUV), résultats des analyses toxicologiques effectuées le 24 novembre 2014, demande de désignation d'un expert au Centre d'expertises psychiatriques de Cery). Le 5 décembre 2014, le Tribunal cantonal a communiqué à l'avocat du prénommé deux des quatre pièces transmises par le Ministère public (état de fait complété d'office sur la base du dossier: art. 105 al. 2 LTF).
Par arrêt du 10 décembre 2014, le Tribunal cantonal a rejeté le recours déposé par le prénommé contre l'ordonnance du 18 novembre 2014. Il a considéré en substance qu'il existait un risque de réitération, qu'aucune mesure de substitution n'était susceptible de pallier.
Par lettre du 16 décembre 2014 adressée à l'avocat du prévenu, le Président de la Chambre des recours pénale a relevé que "il semble que le greffe de la Chambre des recours pénale ait effectivement omis par erreur de transmettre copie des pièces 14 et 15, qui avaient fait l'objet d'un avis de transmission séparé et postérieur de la part du Ministère public"; il a précisé le regretter et a présenté ses excuses, "tout en observant que ces pièces n'ont joué qu'un rôle très marginal dans l'arrêt du 10 décembre 2014".
B.
Agissant par la voie du recours en matière pénale, A._ demande principalement au Tribunal fédéral de réformer l'arrêt du 10 décembre 2014 en ce sens qu'il est immédiatement relaxé. Il conclut à titre subsidiaire à l'annulation de l'arrêt attaqué. Il requiert en outre l'assistance judiciaire.
Invités à se déterminer, la cour cantonale et le Ministère public du canton de Vaud concluent au rejet du recours. Le recourant a répliqué par courrier du 13 janvier 2015.

Considérant en droit :
1.
Le recours en matière pénale (art. 78 al. 1 LTF) est en principe ouvert contre une décision relative au maintien en détention provisoire au sens des art. 212 ss CPP. Dès lors que l'acte de procédure litigieux ne met pas un terme à la procédure pénale (art. 90 s. LTF), il s'agit d'une décision incidente prise séparément au sens de l'art. 93 al. 1 LTF. La décision ordonnant le maintien en détention provisoire du prévenu étant susceptible de lui causer un préjudice irréparable au sens de l'art. 93 al. 1 let. a LTF, elle peut faire l'objet d'un recours au Tribunal fédéral. Selon l'art. 81 al. 1 let. a et let. b ch. 1 LTF, l'accusé a qualité pour agir. Pour le surplus, le recours est formé en temps utile (art. 100 al. 1 LTF) contre une décision rendue en dernière instance cantonale (art. 80 LTF) et les conclusions présentées sont recevables au regard de l'art. 107 al. 2 LTF.
2.
Dans un grief d'ordre formel qu'il convient d'examiner en premier lieu, le recourant se plaint d'une constatation incomplète des faits.
2.1. En vertu de l'art. 97 al. 1 LTF, le recours ne peut critiquer les constatations de fait que si les faits ont été établis de façon manifestement inexacte ou en violation du droit au sens de l'art. 95 LTF et si la correction du vice est susceptible d'influer sur le sort de la cause. Cela signifie que la partie recourante doit exposer en quoi l'état de fait retenu par l'instance précédente est arbitraire ou contraire au droit et préciser en quoi la correction du vice aurait une influence sur l'issue de la cause, faute de quoi il n'est pas possible de s'écarter des faits arrêtés dans l'arrêt attaqué. La notion de "manifestement inexacte" figurant à l'art. 97 al. 1 LTF correspond à celle d'arbitraire au sens de l'art. 9 Cst. (<ref-ruling> consid. 2.3 p. 266).
2.2. En l'espèce, le recourant expose avoir reçu copie de deux (sur les quatre) pièces transmises par le Procureur au Tribunal cantonal. Cet élément a été ajouté à l'état de fait de cet arrêt, en application de l'art. 105 al. 2 LTF.
Pour le reste, le prévenu fait valoir différents éléments, sans exposer en quoi un complément de l'état de fait sur ces points aurait une influence sur l'examen du risque de récidive. Il en va ainsi des circonstances suivantes: son divorce a été litigieux; lorsqu'il a été entendu par le Procureur le 15 novembre 2014 il avait passé la nuit à l'hôpital; il a été transféré à l'Unité psychiatrique de la prison de la Tuilière. Dès lors, faute d'avoir une incidence déterminante sur l'issue du litige, le grief de l'établissement incomplet de ces faits doit être écarté.
Enfin, l'intéressé reproche au Tribunal cantonal de ne pas avoir mentionné expressément qu'il avait fait ménage commun pendant 4 ans avec son ex-compagne et son fils. Là encore, il ne peut se plaindre de constatation incomplète des faits, dans la mesure où l'instance précédente a pris en compte l'attestation rédigée par cette femme, qui expose précisément cet élément.
3.
Le recourant se plaint d'une violation de son droit d'être entendu à différents titres.
3.1. Le prévenu reproche d'abord au Tribunal cantonal de s'être fondé sur des éléments versés au dossier pénal après que le Tmc a rendu sa décision. Ce grief peut être d'emblée rejeté dans la mesure où l'instance précédente était habilitée à procéder de la sorte. En effet, le Tribunal cantonal dispose d'un plein pouvoir d'examen en fait et en droit, le législateur ayant renoncé à introduire un régime restrictif en matière d'allégations et de preuves nouvelles, sauf dans le cas très particulier de l'art. 398 al. 4 CPP (cf. art. 391 al. 1 et 393 al. 2 CPP). La jurisprudence admet ainsi la production de faits et de moyens de preuve nouveaux devant l'instance de recours (arrêt 1B_768/2012 du 15 janvier 2013 consid. 2.1). Cette conclusion s'impose d'autant plus lorsqu'il s'agit du contrôle de la détention provisoire (art. 5 al. 2 CPP).
3.2. Le recourant fait ensuite grief au Tribunal cantonal de ne pas l'avoir entendu oralement et de ne pas avoir tenu d'audience avant de rendre son jugement. Il ne peut être suivi dans la mesure où le recours fait l'objet d'une procédure écrite (art. 397 al. 1 CPP), les débats ayant une nature potestative (art. 390 al. 5 CPP). Par ailleurs, l'art. 29 al. 2 Cst. ne confère pas le droit d'être entendu oralement (<ref-ruling> consid. 5.3 p. 148 et les références citées).
3.3. Le prévenu regrette aussi que l'instance précédente n'ait pas donné suite à sa demande d'auditionner son ex-compagne en qualité de témoin. Ce grief doit être rejeté dans la mesure où le Tribunal cantonal a pris en compte le témoignage écrit de cette personne et a ainsi procédé à une appréciation anticipée non arbitraire des preuves en renonçant à donner suite à la requête du recourant (sur l'appréciation anticipée des preuves: <ref-ruling> consid. 5.3 p. 236).
3.4. Le recourant soutient enfin que son droit d'être entendu a été violé, au motif que deux pièces (le rapport médical du 2 décembre 2014 de l'Unité de psychiatrie ambulatoire du CHUV et la demande de désignation d'expert au secteur psychiatrique), versées au dossier après le dépôt de son recours cantonal, ne lui ont pas été transmises.
3.4.1. Le droit d'être entendu, tel qu'il est garanti aux art. 3 al. 2 let. c CPP et 29 al. 2 Cst., comprend notamment le droit pour l'intéressé de s'exprimer sur les éléments pertinents du dossier avant qu'une décision ne soit prise touchant sa situation juridique et de consulter le dossier (<ref-ruling> consid. 6.3.1 p. 299; <ref-ruling> consid. 3.2 p. 272). Le droit de consulter le dossier s'étend à toutes les pièces décisives (<ref-ruling> consid. 2a p. 227 et les références citées). En particulier, la personne concernée par une procédure de mise en détention doit pouvoir accéder aux éléments de preuve y relatifs, tels que les résultats de l'enquête de police et des autres mesures d'investigation, de manière à pouvoir contester efficacement la mesure de détention (<ref-ruling> consid. 5b p. 339; <ref-ruling> consid. 4-6 p. 299 ss).
3.4.2. En l'occurrence, l'arrêt attaqué mentionne le rapport médical du 2 décembre 2014 de l'Unité de psychiatrie ambulatoire du CHUV et cite un extrait exposant que le recourant paraît souffrir d'une "pathologie psychiatrique invalidante qui affecte significativement à sévèrement ses facultés mnésiques, attentionnelles, exécutives, perceptives et de régulation affective et relationnelle (...) dans un contexte combiné de fragilité constitutionnelle et de vécu traumatique massif". Le Tribunal cantonal fait référence à ce rapport pour renforcer sa motivation quant à l'existence d'un risque de réitération. Cet élément a indéniablement pesé dans l'appréciation de l'instance précédente, qui s'y réfère pour étayer le risque de récidive justifiant le maintien en détention. Il a une incidence sur la décision attaquée, de sorte que le recourant devait être en mesure de se déterminer à son sujet.
Le recourant ne conteste pas que le dossier pouvait être consulté auprès du Tribunal cantonal et qu'il n'en a jamais requis la consultation, alors qu'il ne pouvait échapper à son avocat que l'enquête en étant à ses débuts était susceptible d'évoluer rapidement. C'est d'ailleurs à juste titre que le prévenu ne se prévaut pas d'une violation de l'art. 101 al. 1 CPP. En l'espèce cependant, le 5 décembre 2014, le Tribunal cantonal a communiqué spontanément au recourant deux pièces que lui avait transmises le Ministère public. Dans ces circonstances, le recourant pouvait s'attendre légitimement à ce qu'aucune pièce ne soit versée au dossier, sans qu'une copie ne lui soit automatiquement transmise par la cour cantonale. Le Président de la Chambre des recours pénale a d'ailleurs reconnu que deux pièces auraient dû être transmises d'office au recourant et s'en est excusé.
En définitive, en fondant son jugement sur une pièce que lui a transmise le Ministère public postérieurement à l'ordonnance querellée du Tmc et en s'abstenant de la communiquer au prévenu, le Tribunal cantonal a violé le droit d'être entendu du recourant.
3.5. Cette violation du droit d'être entendu ne peut pas être guérie dans la présente procédure de recours, ne serait-ce que parce que le Tribunal fédéral ne revoit pas librement les faits (art. 97 et 105 LTF; <ref-ruling> consid. 2.2 p. 204; <ref-ruling> consid. 5.1 p. 390; <ref-ruling> consid. 2.2.3 p. 135 et les références citées). Le recours doit donc être admis pour ce motif, sans qu'il soit nécessaire d'examiner les autres griefs soulevés par le recourant (cf. ATF <ref-ruling> consid. 5.1 p. 390). Il appartiendra au Tribunal cantonal de rendre une nouvelle décision à brève échéance, après avoir donné au recourant l'occasion de se déterminer au sujet du rapport médical du 2 décembre 2014.
3.6. Lorsque le Tribunal fédéral constate que la procédure de mise en détention n'a pas satisfait aux garanties constitutionnelles ou conventionnelles en cause, il n'en résulte pas obligatoirement que le prévenu doive être remis en liberté (<ref-ruling> consid. 3b p. 64; <ref-ruling> consid. 5g p. 308; <ref-ruling> consid. 5d p. 93). Tel est le cas en particulier lorsque, comme en l'espèce, la décision attaquée est partiellement annulée pour des raisons formelles liées à la violation du droit d'être entendu, que le prévenu ne conteste ni l'existence de charges à son encontre ni ses antécédents en matière de possession illégale d'armes à feu, lesquels sont susceptibles de fonder le risque de récidive. La demande de mise en liberté doit donc être rejetée.
4.
Il s'ensuit que le recours doit être admis partiellement et l'arrêt attaqué annulé. La cause est renvoyée au Tribunal cantonal pour qu'il rende, à brève échéance, une nouvelle décision prise dans le respect du droit d'être entendu du recourant. La demande de mise en liberté est rejetée.
Il n'y a pas lieu de percevoir de frais judiciaires (art. 66 al. 4 LTF). Le recourant obtenant partiellement gain de cause, l'Etat de Vaud versera une indemnité à titre de dépens à son conseil (art. 68 al. 1 LTF). Vu l'issue du recours, la demande d'assistance judiciaire est sans objet.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est partiellement admis. L'arrêt attaqué est annulé et la cause est renvoyée au Tribunal cantonal, pour nouvelle décision dans le sens des considérants.
2.
La demande de mise en liberté immédiate est rejetée.
3.
Le canton de Vaud versera au conseil du recourant une indemnité de 2'000 francs à titre de dépens.
4.
Le présent arrêt est communiqué au mandataire du recourant, au Ministère public central du canton de Vaud et au Tribunal cantonal du canton de Vaud, Chambre des recours pénale.
Lausanne, le 20 janvier 2015
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président : Fonjallaz
La Greffière : Tornay Schaller