aboutsummaryrefslogtreecommitdiffstats
path: root/lib/runtime_tools/c_src/dyntrace.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/runtime_tools/c_src/dyntrace.c')
-rw-r--r--lib/runtime_tools/c_src/dyntrace.c1136
1 files changed, 7 insertions, 1129 deletions
diff --git a/lib/runtime_tools/c_src/dyntrace.c b/lib/runtime_tools/c_src/dyntrace.c
index 62a392fe56..eef03afd1c 100644
--- a/lib/runtime_tools/c_src/dyntrace.c
+++ b/lib/runtime_tools/c_src/dyntrace.c
@@ -36,6 +36,10 @@
void dtrace_nifenv_str(ErlNifEnv *env, char *process_buf);
void get_string_maybe(ErlNifEnv *env, const ERL_NIF_TERM term, char **ptr, char *buf, int bufsiz);
+#ifdef HAVE_USE_DTRACE
+ERL_NIF_TERM erl_nif_user_trace_s1(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]);
+ERL_NIF_TERM erl_nif_user_trace_i4s4(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]);
+#endif
#ifdef VALGRIND
# include <valgrind/memcheck.h>
@@ -98,1151 +102,25 @@ static ERL_NIF_TERM available(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[
static ERL_NIF_TERM user_trace_s1(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
{
#ifdef HAVE_USE_DTRACE
- ErlNifBinary message_bin;
- DTRACE_CHARBUF(messagebuf, MESSAGE_BUFSIZ + 1);
-
- if (DTRACE_ENABLED(user_trace_s1)) {
- if (!enif_inspect_iolist_as_binary(env, argv[0], &message_bin) ||
- message_bin.size > MESSAGE_BUFSIZ) {
- return atom_badarg;
- }
- memcpy(messagebuf, (char *) message_bin.data, message_bin.size);
- messagebuf[message_bin.size] = '\0';
- DTRACE1(user_trace_s1, messagebuf);
- return atom_true;
- } else {
- return atom_false;
- }
+ return erl_nif_user_trace_s1(env, argc, argv);
#else
return atom_error;
#endif
}
-void
-get_string_maybe(ErlNifEnv *env,
- const ERL_NIF_TERM term, char **ptr, char *buf, int bufsiz)
-{
- ErlNifBinary str_bin;
-
- if (!enif_inspect_iolist_as_binary(env, term, &str_bin) ||
- str_bin.size > bufsiz) {
- *ptr = NULL;
- } else {
- memcpy(buf, (char *) str_bin.data, str_bin.size);
- buf[str_bin.size] = '\0';
- *ptr = buf;
- }
-}
-
static ERL_NIF_TERM user_trace_i4s4(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
{
#ifdef HAVE_USE_DTRACE
- DTRACE_CHARBUF(procbuf, 32 + 1);
- DTRACE_CHARBUF(user_tagbuf, MESSAGE_BUFSIZ + 1);
- char *utbuf = NULL;
- ErlNifSInt64 i1, i2, i3, i4;
- DTRACE_CHARBUF(messagebuf1, MESSAGE_BUFSIZ + 1);
- DTRACE_CHARBUF(messagebuf2, MESSAGE_BUFSIZ + 1);
- DTRACE_CHARBUF(messagebuf3, MESSAGE_BUFSIZ + 1);
- DTRACE_CHARBUF(messagebuf4, MESSAGE_BUFSIZ + 1);
- char *mbuf1 = NULL, *mbuf2 = NULL, *mbuf3 = NULL, *mbuf4 = NULL;
-
- if (DTRACE_ENABLED(user_trace_i4s4)) {
- dtrace_nifenv_str(env, procbuf);
- get_string_maybe(env, argv[0], &utbuf, user_tagbuf, MESSAGE_BUFSIZ);
- if (! enif_get_int64(env, argv[1], &i1))
- i1 = 0;
- if (! enif_get_int64(env, argv[2], &i2))
- i2 = 0;
- if (! enif_get_int64(env, argv[3], &i3))
- i3 = 0;
- if (! enif_get_int64(env, argv[4], &i4))
- i4 = 0;
- get_string_maybe(env, argv[5], &mbuf1, messagebuf1, MESSAGE_BUFSIZ);
- get_string_maybe(env, argv[6], &mbuf2, messagebuf2, MESSAGE_BUFSIZ);
- get_string_maybe(env, argv[7], &mbuf3, messagebuf3, MESSAGE_BUFSIZ);
- get_string_maybe(env, argv[8], &mbuf4, messagebuf4, MESSAGE_BUFSIZ);
- DTRACE10(user_trace_i4s4, procbuf, utbuf,
- i1, i2, i3, i4, mbuf1, mbuf2, mbuf3, mbuf4);
- return atom_true;
- } else {
- return atom_false;
- }
+ return erl_nif_user_trace_i4s4(env, argc, argv);
#else
return atom_error;
#endif
}
-#define DTRACE10_LABEL(name, label, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) \
- erlang_##name##label((a0), (a1), (a2), (a3), (a4), (a5), (a6), (a7), (a8), (a9))
-#define N_STATEMENT(the_label) \
- case the_label: \
- if (DTRACE_ENABLED(user_trace_n##the_label)) { \
- dtrace_nifenv_str(env, procbuf); \
- get_string_maybe(env, argv[1], &utbuf, user_tagbuf, MESSAGE_BUFSIZ); \
- if (! enif_get_int64(env, argv[2], &i1)) \
- i1 = 0; \
- if (! enif_get_int64(env, argv[3], &i2)) \
- i2 = 0; \
- if (! enif_get_int64(env, argv[4], &i3)) \
- i3 = 0; \
- if (! enif_get_int64(env, argv[5], &i4)) \
- i4 = 0; \
- get_string_maybe(env, argv[6], &mbuf1, messagebuf1, MESSAGE_BUFSIZ); \
- get_string_maybe(env, argv[7], &mbuf2, messagebuf2, MESSAGE_BUFSIZ); \
- get_string_maybe(env, argv[8], &mbuf3, messagebuf3, MESSAGE_BUFSIZ); \
- get_string_maybe(env, argv[9], &mbuf4, messagebuf4, MESSAGE_BUFSIZ); \
- DTRACE10_LABEL(user_trace_n, the_label, procbuf, utbuf, \
- i1, i2, i3, i4, mbuf1, mbuf2, mbuf3, mbuf4); \
- return atom_true; \
- } else { \
- return atom_false; \
- } \
- break
-
static ERL_NIF_TERM user_trace_n(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
{
#ifdef HAVE_USE_DTRACE
- DTRACE_CHARBUF(procbuf, 32 + 1);
- DTRACE_CHARBUF(user_tagbuf, MESSAGE_BUFSIZ + 1);
- char *utbuf = NULL;
- ErlNifSInt64 i1, i2, i3, i4;
- DTRACE_CHARBUF(messagebuf1, MESSAGE_BUFSIZ + 1);
- DTRACE_CHARBUF(messagebuf2, MESSAGE_BUFSIZ + 1);
- DTRACE_CHARBUF(messagebuf3, MESSAGE_BUFSIZ + 1);
- DTRACE_CHARBUF(messagebuf4, MESSAGE_BUFSIZ + 1);
- char *mbuf1 = NULL, *mbuf2 = NULL, *mbuf3 = NULL, *mbuf4 = NULL;
- ErlNifSInt64 label = 0;
-
- if (! enif_get_int64(env, argv[0], &label) || label < 0 || label > 1023)
- return atom_badarg;
- switch (label) {
- N_STATEMENT(0);
- N_STATEMENT(1);
- N_STATEMENT(2);
- N_STATEMENT(3);
- N_STATEMENT(4);
- N_STATEMENT(5);
- N_STATEMENT(6);
- N_STATEMENT(7);
- N_STATEMENT(8);
- N_STATEMENT(9);
- N_STATEMENT(10);
- N_STATEMENT(11);
- N_STATEMENT(12);
- N_STATEMENT(13);
- N_STATEMENT(14);
- N_STATEMENT(15);
- N_STATEMENT(16);
- N_STATEMENT(17);
- N_STATEMENT(18);
- N_STATEMENT(19);
- N_STATEMENT(20);
- N_STATEMENT(21);
- N_STATEMENT(22);
- N_STATEMENT(23);
- N_STATEMENT(24);
- N_STATEMENT(25);
- N_STATEMENT(26);
- N_STATEMENT(27);
- N_STATEMENT(28);
- N_STATEMENT(29);
- N_STATEMENT(30);
- N_STATEMENT(31);
- N_STATEMENT(32);
- N_STATEMENT(33);
- N_STATEMENT(34);
- N_STATEMENT(35);
- N_STATEMENT(36);
- N_STATEMENT(37);
- N_STATEMENT(38);
- N_STATEMENT(39);
- N_STATEMENT(40);
- N_STATEMENT(41);
- N_STATEMENT(42);
- N_STATEMENT(43);
- N_STATEMENT(44);
- N_STATEMENT(45);
- N_STATEMENT(46);
- N_STATEMENT(47);
- N_STATEMENT(48);
- N_STATEMENT(49);
- N_STATEMENT(50);
- N_STATEMENT(51);
- N_STATEMENT(52);
- N_STATEMENT(53);
- N_STATEMENT(54);
- N_STATEMENT(55);
- N_STATEMENT(56);
- N_STATEMENT(57);
- N_STATEMENT(58);
- N_STATEMENT(59);
- N_STATEMENT(60);
- N_STATEMENT(61);
- N_STATEMENT(62);
- N_STATEMENT(63);
- N_STATEMENT(64);
- N_STATEMENT(65);
- N_STATEMENT(66);
- N_STATEMENT(67);
- N_STATEMENT(68);
- N_STATEMENT(69);
- N_STATEMENT(70);
- N_STATEMENT(71);
- N_STATEMENT(72);
- N_STATEMENT(73);
- N_STATEMENT(74);
- N_STATEMENT(75);
- N_STATEMENT(76);
- N_STATEMENT(77);
- N_STATEMENT(78);
- N_STATEMENT(79);
- N_STATEMENT(80);
- N_STATEMENT(81);
- N_STATEMENT(82);
- N_STATEMENT(83);
- N_STATEMENT(84);
- N_STATEMENT(85);
- N_STATEMENT(86);
- N_STATEMENT(87);
- N_STATEMENT(88);
- N_STATEMENT(89);
- N_STATEMENT(90);
- N_STATEMENT(91);
- N_STATEMENT(92);
- N_STATEMENT(93);
- N_STATEMENT(94);
- N_STATEMENT(95);
- N_STATEMENT(96);
- N_STATEMENT(97);
- N_STATEMENT(98);
- N_STATEMENT(99);
- N_STATEMENT(100);
- N_STATEMENT(101);
- N_STATEMENT(102);
- N_STATEMENT(103);
- N_STATEMENT(104);
- N_STATEMENT(105);
- N_STATEMENT(106);
- N_STATEMENT(107);
- N_STATEMENT(108);
- N_STATEMENT(109);
- N_STATEMENT(110);
- N_STATEMENT(111);
- N_STATEMENT(112);
- N_STATEMENT(113);
- N_STATEMENT(114);
- N_STATEMENT(115);
- N_STATEMENT(116);
- N_STATEMENT(117);
- N_STATEMENT(118);
- N_STATEMENT(119);
- N_STATEMENT(120);
- N_STATEMENT(121);
- N_STATEMENT(122);
- N_STATEMENT(123);
- N_STATEMENT(124);
- N_STATEMENT(125);
- N_STATEMENT(126);
- N_STATEMENT(127);
- N_STATEMENT(128);
- N_STATEMENT(129);
- N_STATEMENT(130);
- N_STATEMENT(131);
- N_STATEMENT(132);
- N_STATEMENT(133);
- N_STATEMENT(134);
- N_STATEMENT(135);
- N_STATEMENT(136);
- N_STATEMENT(137);
- N_STATEMENT(138);
- N_STATEMENT(139);
- N_STATEMENT(140);
- N_STATEMENT(141);
- N_STATEMENT(142);
- N_STATEMENT(143);
- N_STATEMENT(144);
- N_STATEMENT(145);
- N_STATEMENT(146);
- N_STATEMENT(147);
- N_STATEMENT(148);
- N_STATEMENT(149);
- N_STATEMENT(150);
- N_STATEMENT(151);
- N_STATEMENT(152);
- N_STATEMENT(153);
- N_STATEMENT(154);
- N_STATEMENT(155);
- N_STATEMENT(156);
- N_STATEMENT(157);
- N_STATEMENT(158);
- N_STATEMENT(159);
- N_STATEMENT(160);
- N_STATEMENT(161);
- N_STATEMENT(162);
- N_STATEMENT(163);
- N_STATEMENT(164);
- N_STATEMENT(165);
- N_STATEMENT(166);
- N_STATEMENT(167);
- N_STATEMENT(168);
- N_STATEMENT(169);
- N_STATEMENT(170);
- N_STATEMENT(171);
- N_STATEMENT(172);
- N_STATEMENT(173);
- N_STATEMENT(174);
- N_STATEMENT(175);
- N_STATEMENT(176);
- N_STATEMENT(177);
- N_STATEMENT(178);
- N_STATEMENT(179);
- N_STATEMENT(180);
- N_STATEMENT(181);
- N_STATEMENT(182);
- N_STATEMENT(183);
- N_STATEMENT(184);
- N_STATEMENT(185);
- N_STATEMENT(186);
- N_STATEMENT(187);
- N_STATEMENT(188);
- N_STATEMENT(189);
- N_STATEMENT(190);
- N_STATEMENT(191);
- N_STATEMENT(192);
- N_STATEMENT(193);
- N_STATEMENT(194);
- N_STATEMENT(195);
- N_STATEMENT(196);
- N_STATEMENT(197);
- N_STATEMENT(198);
- N_STATEMENT(199);
- N_STATEMENT(200);
- N_STATEMENT(201);
- N_STATEMENT(202);
- N_STATEMENT(203);
- N_STATEMENT(204);
- N_STATEMENT(205);
- N_STATEMENT(206);
- N_STATEMENT(207);
- N_STATEMENT(208);
- N_STATEMENT(209);
- N_STATEMENT(210);
- N_STATEMENT(211);
- N_STATEMENT(212);
- N_STATEMENT(213);
- N_STATEMENT(214);
- N_STATEMENT(215);
- N_STATEMENT(216);
- N_STATEMENT(217);
- N_STATEMENT(218);
- N_STATEMENT(219);
- N_STATEMENT(220);
- N_STATEMENT(221);
- N_STATEMENT(222);
- N_STATEMENT(223);
- N_STATEMENT(224);
- N_STATEMENT(225);
- N_STATEMENT(226);
- N_STATEMENT(227);
- N_STATEMENT(228);
- N_STATEMENT(229);
- N_STATEMENT(230);
- N_STATEMENT(231);
- N_STATEMENT(232);
- N_STATEMENT(233);
- N_STATEMENT(234);
- N_STATEMENT(235);
- N_STATEMENT(236);
- N_STATEMENT(237);
- N_STATEMENT(238);
- N_STATEMENT(239);
- N_STATEMENT(240);
- N_STATEMENT(241);
- N_STATEMENT(242);
- N_STATEMENT(243);
- N_STATEMENT(244);
- N_STATEMENT(245);
- N_STATEMENT(246);
- N_STATEMENT(247);
- N_STATEMENT(248);
- N_STATEMENT(249);
- N_STATEMENT(250);
- N_STATEMENT(251);
- N_STATEMENT(252);
- N_STATEMENT(253);
- N_STATEMENT(254);
- N_STATEMENT(255);
- N_STATEMENT(256);
- N_STATEMENT(257);
- N_STATEMENT(258);
- N_STATEMENT(259);
- N_STATEMENT(260);
- N_STATEMENT(261);
- N_STATEMENT(262);
- N_STATEMENT(263);
- N_STATEMENT(264);
- N_STATEMENT(265);
- N_STATEMENT(266);
- N_STATEMENT(267);
- N_STATEMENT(268);
- N_STATEMENT(269);
- N_STATEMENT(270);
- N_STATEMENT(271);
- N_STATEMENT(272);
- N_STATEMENT(273);
- N_STATEMENT(274);
- N_STATEMENT(275);
- N_STATEMENT(276);
- N_STATEMENT(277);
- N_STATEMENT(278);
- N_STATEMENT(279);
- N_STATEMENT(280);
- N_STATEMENT(281);
- N_STATEMENT(282);
- N_STATEMENT(283);
- N_STATEMENT(284);
- N_STATEMENT(285);
- N_STATEMENT(286);
- N_STATEMENT(287);
- N_STATEMENT(288);
- N_STATEMENT(289);
- N_STATEMENT(290);
- N_STATEMENT(291);
- N_STATEMENT(292);
- N_STATEMENT(293);
- N_STATEMENT(294);
- N_STATEMENT(295);
- N_STATEMENT(296);
- N_STATEMENT(297);
- N_STATEMENT(298);
- N_STATEMENT(299);
- N_STATEMENT(300);
- N_STATEMENT(301);
- N_STATEMENT(302);
- N_STATEMENT(303);
- N_STATEMENT(304);
- N_STATEMENT(305);
- N_STATEMENT(306);
- N_STATEMENT(307);
- N_STATEMENT(308);
- N_STATEMENT(309);
- N_STATEMENT(310);
- N_STATEMENT(311);
- N_STATEMENT(312);
- N_STATEMENT(313);
- N_STATEMENT(314);
- N_STATEMENT(315);
- N_STATEMENT(316);
- N_STATEMENT(317);
- N_STATEMENT(318);
- N_STATEMENT(319);
- N_STATEMENT(320);
- N_STATEMENT(321);
- N_STATEMENT(322);
- N_STATEMENT(323);
- N_STATEMENT(324);
- N_STATEMENT(325);
- N_STATEMENT(326);
- N_STATEMENT(327);
- N_STATEMENT(328);
- N_STATEMENT(329);
- N_STATEMENT(330);
- N_STATEMENT(331);
- N_STATEMENT(332);
- N_STATEMENT(333);
- N_STATEMENT(334);
- N_STATEMENT(335);
- N_STATEMENT(336);
- N_STATEMENT(337);
- N_STATEMENT(338);
- N_STATEMENT(339);
- N_STATEMENT(340);
- N_STATEMENT(341);
- N_STATEMENT(342);
- N_STATEMENT(343);
- N_STATEMENT(344);
- N_STATEMENT(345);
- N_STATEMENT(346);
- N_STATEMENT(347);
- N_STATEMENT(348);
- N_STATEMENT(349);
- N_STATEMENT(350);
- N_STATEMENT(351);
- N_STATEMENT(352);
- N_STATEMENT(353);
- N_STATEMENT(354);
- N_STATEMENT(355);
- N_STATEMENT(356);
- N_STATEMENT(357);
- N_STATEMENT(358);
- N_STATEMENT(359);
- N_STATEMENT(360);
- N_STATEMENT(361);
- N_STATEMENT(362);
- N_STATEMENT(363);
- N_STATEMENT(364);
- N_STATEMENT(365);
- N_STATEMENT(366);
- N_STATEMENT(367);
- N_STATEMENT(368);
- N_STATEMENT(369);
- N_STATEMENT(370);
- N_STATEMENT(371);
- N_STATEMENT(372);
- N_STATEMENT(373);
- N_STATEMENT(374);
- N_STATEMENT(375);
- N_STATEMENT(376);
- N_STATEMENT(377);
- N_STATEMENT(378);
- N_STATEMENT(379);
- N_STATEMENT(380);
- N_STATEMENT(381);
- N_STATEMENT(382);
- N_STATEMENT(383);
- N_STATEMENT(384);
- N_STATEMENT(385);
- N_STATEMENT(386);
- N_STATEMENT(387);
- N_STATEMENT(388);
- N_STATEMENT(389);
- N_STATEMENT(390);
- N_STATEMENT(391);
- N_STATEMENT(392);
- N_STATEMENT(393);
- N_STATEMENT(394);
- N_STATEMENT(395);
- N_STATEMENT(396);
- N_STATEMENT(397);
- N_STATEMENT(398);
- N_STATEMENT(399);
- N_STATEMENT(400);
- N_STATEMENT(401);
- N_STATEMENT(402);
- N_STATEMENT(403);
- N_STATEMENT(404);
- N_STATEMENT(405);
- N_STATEMENT(406);
- N_STATEMENT(407);
- N_STATEMENT(408);
- N_STATEMENT(409);
- N_STATEMENT(410);
- N_STATEMENT(411);
- N_STATEMENT(412);
- N_STATEMENT(413);
- N_STATEMENT(414);
- N_STATEMENT(415);
- N_STATEMENT(416);
- N_STATEMENT(417);
- N_STATEMENT(418);
- N_STATEMENT(419);
- N_STATEMENT(420);
- N_STATEMENT(421);
- N_STATEMENT(422);
- N_STATEMENT(423);
- N_STATEMENT(424);
- N_STATEMENT(425);
- N_STATEMENT(426);
- N_STATEMENT(427);
- N_STATEMENT(428);
- N_STATEMENT(429);
- N_STATEMENT(430);
- N_STATEMENT(431);
- N_STATEMENT(432);
- N_STATEMENT(433);
- N_STATEMENT(434);
- N_STATEMENT(435);
- N_STATEMENT(436);
- N_STATEMENT(437);
- N_STATEMENT(438);
- N_STATEMENT(439);
- N_STATEMENT(440);
- N_STATEMENT(441);
- N_STATEMENT(442);
- N_STATEMENT(443);
- N_STATEMENT(444);
- N_STATEMENT(445);
- N_STATEMENT(446);
- N_STATEMENT(447);
- N_STATEMENT(448);
- N_STATEMENT(449);
- N_STATEMENT(450);
- N_STATEMENT(451);
- N_STATEMENT(452);
- N_STATEMENT(453);
- N_STATEMENT(454);
- N_STATEMENT(455);
- N_STATEMENT(456);
- N_STATEMENT(457);
- N_STATEMENT(458);
- N_STATEMENT(459);
- N_STATEMENT(460);
- N_STATEMENT(461);
- N_STATEMENT(462);
- N_STATEMENT(463);
- N_STATEMENT(464);
- N_STATEMENT(465);
- N_STATEMENT(466);
- N_STATEMENT(467);
- N_STATEMENT(468);
- N_STATEMENT(469);
- N_STATEMENT(470);
- N_STATEMENT(471);
- N_STATEMENT(472);
- N_STATEMENT(473);
- N_STATEMENT(474);
- N_STATEMENT(475);
- N_STATEMENT(476);
- N_STATEMENT(477);
- N_STATEMENT(478);
- N_STATEMENT(479);
- N_STATEMENT(480);
- N_STATEMENT(481);
- N_STATEMENT(482);
- N_STATEMENT(483);
- N_STATEMENT(484);
- N_STATEMENT(485);
- N_STATEMENT(486);
- N_STATEMENT(487);
- N_STATEMENT(488);
- N_STATEMENT(489);
- N_STATEMENT(490);
- N_STATEMENT(491);
- N_STATEMENT(492);
- N_STATEMENT(493);
- N_STATEMENT(494);
- N_STATEMENT(495);
- N_STATEMENT(496);
- N_STATEMENT(497);
- N_STATEMENT(498);
- N_STATEMENT(499);
- N_STATEMENT(500);
- N_STATEMENT(501);
- N_STATEMENT(502);
- N_STATEMENT(503);
- N_STATEMENT(504);
- N_STATEMENT(505);
- N_STATEMENT(506);
- N_STATEMENT(507);
- N_STATEMENT(508);
- N_STATEMENT(509);
- N_STATEMENT(510);
- N_STATEMENT(511);
- N_STATEMENT(512);
- N_STATEMENT(513);
- N_STATEMENT(514);
- N_STATEMENT(515);
- N_STATEMENT(516);
- N_STATEMENT(517);
- N_STATEMENT(518);
- N_STATEMENT(519);
- N_STATEMENT(520);
- N_STATEMENT(521);
- N_STATEMENT(522);
- N_STATEMENT(523);
- N_STATEMENT(524);
- N_STATEMENT(525);
- N_STATEMENT(526);
- N_STATEMENT(527);
- N_STATEMENT(528);
- N_STATEMENT(529);
- N_STATEMENT(530);
- N_STATEMENT(531);
- N_STATEMENT(532);
- N_STATEMENT(533);
- N_STATEMENT(534);
- N_STATEMENT(535);
- N_STATEMENT(536);
- N_STATEMENT(537);
- N_STATEMENT(538);
- N_STATEMENT(539);
- N_STATEMENT(540);
- N_STATEMENT(541);
- N_STATEMENT(542);
- N_STATEMENT(543);
- N_STATEMENT(544);
- N_STATEMENT(545);
- N_STATEMENT(546);
- N_STATEMENT(547);
- N_STATEMENT(548);
- N_STATEMENT(549);
- N_STATEMENT(550);
- N_STATEMENT(551);
- N_STATEMENT(552);
- N_STATEMENT(553);
- N_STATEMENT(554);
- N_STATEMENT(555);
- N_STATEMENT(556);
- N_STATEMENT(557);
- N_STATEMENT(558);
- N_STATEMENT(559);
- N_STATEMENT(560);
- N_STATEMENT(561);
- N_STATEMENT(562);
- N_STATEMENT(563);
- N_STATEMENT(564);
- N_STATEMENT(565);
- N_STATEMENT(566);
- N_STATEMENT(567);
- N_STATEMENT(568);
- N_STATEMENT(569);
- N_STATEMENT(570);
- N_STATEMENT(571);
- N_STATEMENT(572);
- N_STATEMENT(573);
- N_STATEMENT(574);
- N_STATEMENT(575);
- N_STATEMENT(576);
- N_STATEMENT(577);
- N_STATEMENT(578);
- N_STATEMENT(579);
- N_STATEMENT(580);
- N_STATEMENT(581);
- N_STATEMENT(582);
- N_STATEMENT(583);
- N_STATEMENT(584);
- N_STATEMENT(585);
- N_STATEMENT(586);
- N_STATEMENT(587);
- N_STATEMENT(588);
- N_STATEMENT(589);
- N_STATEMENT(590);
- N_STATEMENT(591);
- N_STATEMENT(592);
- N_STATEMENT(593);
- N_STATEMENT(594);
- N_STATEMENT(595);
- N_STATEMENT(596);
- N_STATEMENT(597);
- N_STATEMENT(598);
- N_STATEMENT(599);
- N_STATEMENT(600);
- N_STATEMENT(601);
- N_STATEMENT(602);
- N_STATEMENT(603);
- N_STATEMENT(604);
- N_STATEMENT(605);
- N_STATEMENT(606);
- N_STATEMENT(607);
- N_STATEMENT(608);
- N_STATEMENT(609);
- N_STATEMENT(610);
- N_STATEMENT(611);
- N_STATEMENT(612);
- N_STATEMENT(613);
- N_STATEMENT(614);
- N_STATEMENT(615);
- N_STATEMENT(616);
- N_STATEMENT(617);
- N_STATEMENT(618);
- N_STATEMENT(619);
- N_STATEMENT(620);
- N_STATEMENT(621);
- N_STATEMENT(622);
- N_STATEMENT(623);
- N_STATEMENT(624);
- N_STATEMENT(625);
- N_STATEMENT(626);
- N_STATEMENT(627);
- N_STATEMENT(628);
- N_STATEMENT(629);
- N_STATEMENT(630);
- N_STATEMENT(631);
- N_STATEMENT(632);
- N_STATEMENT(633);
- N_STATEMENT(634);
- N_STATEMENT(635);
- N_STATEMENT(636);
- N_STATEMENT(637);
- N_STATEMENT(638);
- N_STATEMENT(639);
- N_STATEMENT(640);
- N_STATEMENT(641);
- N_STATEMENT(642);
- N_STATEMENT(643);
- N_STATEMENT(644);
- N_STATEMENT(645);
- N_STATEMENT(646);
- N_STATEMENT(647);
- N_STATEMENT(648);
- N_STATEMENT(649);
- N_STATEMENT(650);
- N_STATEMENT(651);
- N_STATEMENT(652);
- N_STATEMENT(653);
- N_STATEMENT(654);
- N_STATEMENT(655);
- N_STATEMENT(656);
- N_STATEMENT(657);
- N_STATEMENT(658);
- N_STATEMENT(659);
- N_STATEMENT(660);
- N_STATEMENT(661);
- N_STATEMENT(662);
- N_STATEMENT(663);
- N_STATEMENT(664);
- N_STATEMENT(665);
- N_STATEMENT(666);
- N_STATEMENT(667);
- N_STATEMENT(668);
- N_STATEMENT(669);
- N_STATEMENT(670);
- N_STATEMENT(671);
- N_STATEMENT(672);
- N_STATEMENT(673);
- N_STATEMENT(674);
- N_STATEMENT(675);
- N_STATEMENT(676);
- N_STATEMENT(677);
- N_STATEMENT(678);
- N_STATEMENT(679);
- N_STATEMENT(680);
- N_STATEMENT(681);
- N_STATEMENT(682);
- N_STATEMENT(683);
- N_STATEMENT(684);
- N_STATEMENT(685);
- N_STATEMENT(686);
- N_STATEMENT(687);
- N_STATEMENT(688);
- N_STATEMENT(689);
- N_STATEMENT(690);
- N_STATEMENT(691);
- N_STATEMENT(692);
- N_STATEMENT(693);
- N_STATEMENT(694);
- N_STATEMENT(695);
- N_STATEMENT(696);
- N_STATEMENT(697);
- N_STATEMENT(698);
- N_STATEMENT(699);
- N_STATEMENT(700);
- N_STATEMENT(701);
- N_STATEMENT(702);
- N_STATEMENT(703);
- N_STATEMENT(704);
- N_STATEMENT(705);
- N_STATEMENT(706);
- N_STATEMENT(707);
- N_STATEMENT(708);
- N_STATEMENT(709);
- N_STATEMENT(710);
- N_STATEMENT(711);
- N_STATEMENT(712);
- N_STATEMENT(713);
- N_STATEMENT(714);
- N_STATEMENT(715);
- N_STATEMENT(716);
- N_STATEMENT(717);
- N_STATEMENT(718);
- N_STATEMENT(719);
- N_STATEMENT(720);
- N_STATEMENT(721);
- N_STATEMENT(722);
- N_STATEMENT(723);
- N_STATEMENT(724);
- N_STATEMENT(725);
- N_STATEMENT(726);
- N_STATEMENT(727);
- N_STATEMENT(728);
- N_STATEMENT(729);
- N_STATEMENT(730);
- N_STATEMENT(731);
- N_STATEMENT(732);
- N_STATEMENT(733);
- N_STATEMENT(734);
- N_STATEMENT(735);
- N_STATEMENT(736);
- N_STATEMENT(737);
- N_STATEMENT(738);
- N_STATEMENT(739);
- N_STATEMENT(740);
- N_STATEMENT(741);
- N_STATEMENT(742);
- N_STATEMENT(743);
- N_STATEMENT(744);
- N_STATEMENT(745);
- N_STATEMENT(746);
- N_STATEMENT(747);
- N_STATEMENT(748);
- N_STATEMENT(749);
- N_STATEMENT(750);
- N_STATEMENT(751);
- N_STATEMENT(752);
- N_STATEMENT(753);
- N_STATEMENT(754);
- N_STATEMENT(755);
- N_STATEMENT(756);
- N_STATEMENT(757);
- N_STATEMENT(758);
- N_STATEMENT(759);
- N_STATEMENT(760);
- N_STATEMENT(761);
- N_STATEMENT(762);
- N_STATEMENT(763);
- N_STATEMENT(764);
- N_STATEMENT(765);
- N_STATEMENT(766);
- N_STATEMENT(767);
- N_STATEMENT(768);
- N_STATEMENT(769);
- N_STATEMENT(770);
- N_STATEMENT(771);
- N_STATEMENT(772);
- N_STATEMENT(773);
- N_STATEMENT(774);
- N_STATEMENT(775);
- N_STATEMENT(776);
- N_STATEMENT(777);
- N_STATEMENT(778);
- N_STATEMENT(779);
- N_STATEMENT(780);
- N_STATEMENT(781);
- N_STATEMENT(782);
- N_STATEMENT(783);
- N_STATEMENT(784);
- N_STATEMENT(785);
- N_STATEMENT(786);
- N_STATEMENT(787);
- N_STATEMENT(788);
- N_STATEMENT(789);
- N_STATEMENT(790);
- N_STATEMENT(791);
- N_STATEMENT(792);
- N_STATEMENT(793);
- N_STATEMENT(794);
- N_STATEMENT(795);
- N_STATEMENT(796);
- N_STATEMENT(797);
- N_STATEMENT(798);
- N_STATEMENT(799);
- N_STATEMENT(800);
- N_STATEMENT(801);
- N_STATEMENT(802);
- N_STATEMENT(803);
- N_STATEMENT(804);
- N_STATEMENT(805);
- N_STATEMENT(806);
- N_STATEMENT(807);
- N_STATEMENT(808);
- N_STATEMENT(809);
- N_STATEMENT(810);
- N_STATEMENT(811);
- N_STATEMENT(812);
- N_STATEMENT(813);
- N_STATEMENT(814);
- N_STATEMENT(815);
- N_STATEMENT(816);
- N_STATEMENT(817);
- N_STATEMENT(818);
- N_STATEMENT(819);
- N_STATEMENT(820);
- N_STATEMENT(821);
- N_STATEMENT(822);
- N_STATEMENT(823);
- N_STATEMENT(824);
- N_STATEMENT(825);
- N_STATEMENT(826);
- N_STATEMENT(827);
- N_STATEMENT(828);
- N_STATEMENT(829);
- N_STATEMENT(830);
- N_STATEMENT(831);
- N_STATEMENT(832);
- N_STATEMENT(833);
- N_STATEMENT(834);
- N_STATEMENT(835);
- N_STATEMENT(836);
- N_STATEMENT(837);
- N_STATEMENT(838);
- N_STATEMENT(839);
- N_STATEMENT(840);
- N_STATEMENT(841);
- N_STATEMENT(842);
- N_STATEMENT(843);
- N_STATEMENT(844);
- N_STATEMENT(845);
- N_STATEMENT(846);
- N_STATEMENT(847);
- N_STATEMENT(848);
- N_STATEMENT(849);
- N_STATEMENT(850);
- N_STATEMENT(851);
- N_STATEMENT(852);
- N_STATEMENT(853);
- N_STATEMENT(854);
- N_STATEMENT(855);
- N_STATEMENT(856);
- N_STATEMENT(857);
- N_STATEMENT(858);
- N_STATEMENT(859);
- N_STATEMENT(860);
- N_STATEMENT(861);
- N_STATEMENT(862);
- N_STATEMENT(863);
- N_STATEMENT(864);
- N_STATEMENT(865);
- N_STATEMENT(866);
- N_STATEMENT(867);
- N_STATEMENT(868);
- N_STATEMENT(869);
- N_STATEMENT(870);
- N_STATEMENT(871);
- N_STATEMENT(872);
- N_STATEMENT(873);
- N_STATEMENT(874);
- N_STATEMENT(875);
- N_STATEMENT(876);
- N_STATEMENT(877);
- N_STATEMENT(878);
- N_STATEMENT(879);
- N_STATEMENT(880);
- N_STATEMENT(881);
- N_STATEMENT(882);
- N_STATEMENT(883);
- N_STATEMENT(884);
- N_STATEMENT(885);
- N_STATEMENT(886);
- N_STATEMENT(887);
- N_STATEMENT(888);
- N_STATEMENT(889);
- N_STATEMENT(890);
- N_STATEMENT(891);
- N_STATEMENT(892);
- N_STATEMENT(893);
- N_STATEMENT(894);
- N_STATEMENT(895);
- N_STATEMENT(896);
- N_STATEMENT(897);
- N_STATEMENT(898);
- N_STATEMENT(899);
- N_STATEMENT(900);
- N_STATEMENT(901);
- N_STATEMENT(902);
- N_STATEMENT(903);
- N_STATEMENT(904);
- N_STATEMENT(905);
- N_STATEMENT(906);
- N_STATEMENT(907);
- N_STATEMENT(908);
- N_STATEMENT(909);
- N_STATEMENT(910);
- N_STATEMENT(911);
- N_STATEMENT(912);
- N_STATEMENT(913);
- N_STATEMENT(914);
- N_STATEMENT(915);
- N_STATEMENT(916);
- N_STATEMENT(917);
- N_STATEMENT(918);
- N_STATEMENT(919);
- N_STATEMENT(920);
- N_STATEMENT(921);
- N_STATEMENT(922);
- N_STATEMENT(923);
- N_STATEMENT(924);
- N_STATEMENT(925);
- N_STATEMENT(926);
- N_STATEMENT(927);
- N_STATEMENT(928);
- N_STATEMENT(929);
- N_STATEMENT(930);
- N_STATEMENT(931);
- N_STATEMENT(932);
- N_STATEMENT(933);
- N_STATEMENT(934);
- N_STATEMENT(935);
- N_STATEMENT(936);
- N_STATEMENT(937);
- N_STATEMENT(938);
- N_STATEMENT(939);
- N_STATEMENT(940);
- N_STATEMENT(941);
- N_STATEMENT(942);
- N_STATEMENT(943);
- N_STATEMENT(944);
- N_STATEMENT(945);
- N_STATEMENT(946);
- N_STATEMENT(947);
- N_STATEMENT(948);
- N_STATEMENT(949);
- N_STATEMENT(950);
- N_STATEMENT(951);
- N_STATEMENT(952);
- N_STATEMENT(953);
- N_STATEMENT(954);
- N_STATEMENT(955);
- N_STATEMENT(956);
- N_STATEMENT(957);
- N_STATEMENT(958);
- N_STATEMENT(959);
- N_STATEMENT(960);
- N_STATEMENT(961);
- N_STATEMENT(962);
- N_STATEMENT(963);
- N_STATEMENT(964);
- N_STATEMENT(965);
- N_STATEMENT(966);
- N_STATEMENT(967);
- N_STATEMENT(968);
- N_STATEMENT(969);
- N_STATEMENT(970);
- N_STATEMENT(971);
- N_STATEMENT(972);
- N_STATEMENT(973);
- N_STATEMENT(974);
- N_STATEMENT(975);
- N_STATEMENT(976);
- N_STATEMENT(977);
- N_STATEMENT(978);
- N_STATEMENT(979);
- N_STATEMENT(980);
- N_STATEMENT(981);
- N_STATEMENT(982);
- N_STATEMENT(983);
- N_STATEMENT(984);
- N_STATEMENT(985);
- N_STATEMENT(986);
- N_STATEMENT(987);
- N_STATEMENT(988);
- N_STATEMENT(989);
- N_STATEMENT(990);
- N_STATEMENT(991);
- N_STATEMENT(992);
- N_STATEMENT(993);
- N_STATEMENT(994);
- N_STATEMENT(995);
- N_STATEMENT(996);
- N_STATEMENT(997);
- N_STATEMENT(998);
- N_STATEMENT(999);
- N_STATEMENT(1000);
- N_STATEMENT(1001);
- N_STATEMENT(1002);
- N_STATEMENT(1003);
- N_STATEMENT(1004);
- N_STATEMENT(1005);
- N_STATEMENT(1006);
- N_STATEMENT(1007);
- N_STATEMENT(1008);
- N_STATEMENT(1009);
- N_STATEMENT(1010);
- N_STATEMENT(1011);
- N_STATEMENT(1012);
- N_STATEMENT(1013);
- N_STATEMENT(1014);
- N_STATEMENT(1015);
- N_STATEMENT(1016);
- N_STATEMENT(1017);
- N_STATEMENT(1018);
- N_STATEMENT(1019);
- N_STATEMENT(1020);
- N_STATEMENT(1021);
- N_STATEMENT(1022);
- N_STATEMENT(1023);
- }
- return atom_error; /* NOTREACHED, shut up the compiler */
+ return erl_nif_user_trace_n(env, argc, argv);
#else
return atom_error;
#endif