]> sourceware.org Git - systemtap.git/blame - ChangeLog
PR5792: wildcard support for %( kernel/arch %) preprocessor operands
[systemtap.git] / ChangeLog
CommitLineData
7a468d68
FCE
12008-02-25 Frank Ch. Eigler <fche@elastic.org>
2
3 PR5792.
4 * parse.cxx (eval_pp_conditional): Support wildcards in
5 %( kernel_v/kernel_vr/arch ==/!= "*foo?" %) operands.
6 * NEWS, stap.1.in: Document this.
7
e4c58386
FCE
82008-02-22 Frank Ch. Eigler <fche@elastic.org>
9
10 PR5787, PR2608, .statement()
11 * tapsets.cxx (query_dwarf_func): Process .statement(NUM) probes too.
12 (query_cu): Ditto.
13 (query_func_info): Bypass prologue searching for .statement() probes.
14 (query_cu): Ditto.
15
16 (build_blacklist): Remove unsightly empty first alternative in
17 "^(|foo)$" regexps. Show them for -vvv.
18
19 * buildrun.cxx (compile_pass): Don't turn on "gcc -Q" on until -vvvv.
20
eb973c2a
DS
212008-02-20 David Smith <dsmith@redhat.com>
22
23 * tapsets.cxx (struct mark_derived_probe): Renamed 'probe_sig' to
24 'probe_format'.
25 (mark_derived_probe::mark_derived_probe): Added new "format" probe
26 point component.
27 (mark_derived_probe::parse_probe_format): Renamed from
28 'mark_derived_probe::parse_probe_sig'.
29 (struct mark_builder): Added typedefs. Converted mark_cache from
30 a map to a multimap to handle markers with the same name but
31 different formats.
32 (mark_builder::build): Added new 'format' probe parameter.
33 (register_standard_tapsets): Added new 'format' marker probe
34 optional parameter.
35 * stapprobes.5.in (parts): Documented new "format" probe
36 component.
37
6e7c6be2
RM
382008-02-19 Roland McGrath <roland@redhat.com>
39
40 * tapsets.cxx (query_module): Use dwfl_module_getdwarf rather
d05bd7b9 41 than dwfl_module_getelf for e_machine check.
4d4acff0
RM
42 (dwarf_query::get_blacklist_section): Likewise for section search.
43 Ignore non-SHF_ALLOC sections.
6e7c6be2 44
e484ef85
FCE
452008-02-19 Frank Ch. Eigler <fche@elastic.org>
46
47 * tapsets.cxx (query_module): Tweak elf-machine checking to
48 better represent elfutils idioms.
49
a7301475
FCE
502008-02-19 Frank Ch. Eigler <fche@elastic.org>
51
52 PR 5766.
53 * tapsets.cxx (build_blacklist): Switch (back) to regexp-based
54 blacklist construction ...
55 (blacklist_p): ... and querying.
56
a10fa7f5
DS
572008-02-19 David Smith <dsmith@redhat.com>
58
59 PR 5672.
60 * tapsets.cxx (mark_derived_probe): Call probe_point copy ctor to
61 shallow-copy incoming base probe location before
62 recomputing/overwriting it.
63
1ada6f08
FCE
642008-02-18 Frank Ch. Eigler <fche@elastic.org>
65
66 * NEWS, stapprobes.5.in: Document basic (non-symbolic prototype)
67 user-space probe points.
68
275f40a6
FCE
692008-02-15 Frank Ch. Eigler <fche@elastic.org>
70
71 * tapsets.cxx (function_name_last_match): New function.
72 (query_dwarf_func): Call it to stop unnecessary further iteration.
73
a8c9be6f
FCE
742008-02-13 Frank Ch. Eigler <fche@elastic.org>
75
76 PR 5759
77 * tapsets.cxx (build_blacklist): Add some CONFIG_PREEMPT-related
78 functions.
79
2c5a19c6
DB
802008-02-13 Dave Brolley <brolley@redhat.com>
81
82 PR5609
83 * staptree.h (probe::collect_derivation_chain): Now takes vector<probe*>.
84 (probe::get_alias): New virtual method.
85 * elaborate.h (derived_probe::collect_derivation_chain): Now takes vector<probe*>.
86 * staptree.cxx (probe::collect_derivation_chain): Now takes vector<probe*>. Don't
87 cast 'this' to (derived_probe*).
88 * elaborate.cxx (derived_probe::collect_derivation_chain): Now takes vector<probe*>.
89 (alias_derived_probe::get_alias): New virtual method.
90 (alias_derived_probe::alias): New member.
91 (alias_expansion_builder::build): Call checkForRecursiveExpansion and emit a
92 diagnostic if recursion is detected. Pass alias to constructor of
93 alias_derived_probe.
94 (alias_expansion_builder::checkForRecursiveExpansion): New method.
95 * coveragedb.cxx: Pass vector<probe*> on all calls to collect_derivation_chain.
96
21beacc9
FCE
972008-02-12 Frank Ch. Eigler <fche@elastic.org>
98
99 PR 4393
100 * tapsets.cxx (emit_address): Support relocatable kernels.
101 (dwarf_derived_probe ctor): Hack around for missing USHRT_MAX.
102 * elaborate.cxx (semantic_pass): Increment rc if exception caught.
103
a36378d7
MH
1042008-02-12 Martin Hunt <hunt@redhat.com>
105 PR 5757
4c52f88e 106 * tapsets.cxx, translate.cxx: Cleanup indentation a bit.
a36378d7 107
a8913457
JK
1082008-02-11 Jim Keniston <jkenisto@us.ibm.com>
109
110 PR 5693
111 * runtime/uprobes/uprobes.c: Intercept handler-destined
112 signals received while we're single-stepping, and re-queue
113 them afterward.
114 * runtime/uprobes/uprobes.h: Ditto
115
0d563e60
FCE
1162008-02-09 Frank Ch. Eigler <fche@elastic.org>
117
118 PR5750.
119 From Eugeniy Meshcheryakov eugen@debian.org:
120 * configure.ac (HAVE_LIBSQLITE3): Complete AC_DEFINE.
6e7c6be2 121
0d563e60
FCE
122 * configure, INSTALL, missing, compile, depcomp, install-sh:
123 autoreconf -fi'd.
124
f0510eaa
FCE
1252008-02-09 Frank Ch. Eigler <fche@elastic.org>
126
127 PR 5751.
128 * configure.ac: Add -Werror to trial compilation with
129 -fstack-protector-all, for hosts that don't quite support it.
130 * configure: Regenerated.
131
eef71d9c
DS
1322008-02-08 David Smith <dsmith@redhat.com>
133
fa7a7777 134 PR 5650
eef71d9c
DS
135 * systemtap.spec.in: Further simplification.
136
b54581ce
FCE
1372008-02-07 Frank Ch. Eigler <fche@elastic.org>
138
139 * buildrun.cxx (run_make_cmd, compile_pass): Tweak kbuild
140 parametrization to produce useful compile logs at -vv.
141
378a5245
DS
1422008-02-04 David Smith <dsmith@redhat.com>
143
0a63c36f
DS
144 PR 4446 (partial)
145 * tapsets.cxx
146 (mark_var_expanding_copy_visitor::visit_target_symbol_arg): New
147 function.
148 (mark_var_expanding_copy_visitor::visit_target_symbol_format): New
149 function.
150 (mark_var_expanding_copy_visitor::visit_target_symbol): Handles
151 "$arg" or "$format".
152 (mark_derived_probe_group::emit_module_decls): Sets up "$format"
153 data.
6e7c6be2 154
fa7a7777 155 PR 5650 (parital)
378a5245
DS
156 * systemtap.spec.in: Moved %pre section to the systemtap-runtime
157 rpm.
158
a87d23e3
DS
1592008-01-30 David Smith <dsmith@redhat.com>
160
161 PR 5650
162 * systemtap.spec.in: Simplified and explicitly specifies configure
163 options.
164
5657c32c
DB
1652008-01-30 Dave Brolley <brolley@redhat.com>
166
167 * coveragedb.cxx (print_coverage_info): Fix typo: s.probes -> s.unused_probes
168 where appropriate.
169 (sql_update_unused_probes): Likewise.
170
bbfd8c1a
FCE
1712008-01-29 Frank Ch. Eigler <fche@elastic.org>
172
173 PR 5647
174 * configure.ac (--enable-ssp): Make default on compilers that
175 support it.
176 * configure: Regenerated.
177
07606685
DS
1782008-01-28 David Smith <dsmith@redhat.com>
179
564eb0a8
DS
180 * configure.ac: Fixed a bug when "--disable-permon" was used.
181 Added "--enable-crash" option.
182 * configure: Regenerated.
183 * Makefile.am: Improved staplog.so compile command.
184 * Makefile.in: Regenerated.
185
b0986e7a
DS
186 * tapsets.cxx (dwarf_derived_probe_group::emit_module_decls):
187 Added 'const' to several members of stap_dwarf_probes.
188
07606685
DS
189 PR 5685. From Eugeniy Meshcheryakov <eugen@debian.org>
190 * configure.ac: If "--enable-sqlite" is specified, define
191 HAVE_LIBSQLITE3.
192 * configure: Regenerated.
193
606fd9c8
FCE
1942008-01-26 Frank Ch. Eigler <fche@elastic.org>
195
196 PR 5673.
197 * tapsets.cxx (dwarf_derived_probe_group): Split stap_dwarf_probes[]
198 into bss-carried kprobes structs. Tune embedded strings for
199 minimizing relocation-vs-fixed-buffer wastage.
200 * tapsets.cxx (dwarf_derived_probe): Impose .maxactive() limits.
201
fb103293
JK
2022008-01-25 Jim Keniston <jkenisto@us.ibm.com>
203
204 * runtime/uprobes/uprobes.c: Within a probed process, serialize
205 calls to access_process_vm() when populating instructions
206 slots. Fixes an SMP bug on multithreaded apps with many
207 active probepoints.
208 * runtime/uprobes/uprobes.h: Ditto
209
1939ea32
FCE
2102008-01-25 Frank Ch. Eigler <fche@elastic.org>
211
212 PR 5672.
213 * staptree.cxx (probe_point copy ctor): New function.
214 * staptree.h: Declare it.
215 * tapsets.cxx (dwarf_derived_probe ctor): Call it to shallow-copy
216 incoming base probe location before recomputing/overwriting it.
217
e8f3c2c2
DS
2182008-01-25 David Smith <dsmith@redhat.com>
219
220 * configure.ac: Compressed the two perfmon options into one.
221 Made other small fixes and whitespace changes.
222 * configure: Regenerated.
223
674427d3
FCE
2242008-01-24 Frank Ch. Eigler <fche@elastic.org>
225
226 * Makefile.am: Make another $(MKDIR) call visible.
227 * Makefile.in: Regenerated.
228
9921a199
DS
2292008-01-24 David Smith <dsmith@redhat.com>
230
7ae8037e
DS
231 PR 5661 (reverted).
232 * configure.ac: Removed elfutils version number check.
233 * configure: Regenerated.
234 * acsite.m4: Removed.
235 * systemtap.spec.in: Minimum elfutils version number is no longer
236 filled in by configure.
6e7c6be2 237
9921a199
DS
238 PR 5650 (partial).
239 * configure.ac: Handles sqlite optional functionality correctly.
240 If enabled/disabled by the user, do the right thing. If not
241 specified by the user, use it if present.
242 * configure: Regenerated.
243 * systemtap.spec.in: Always specify to configure whether to use
244 sqlite or not.
245
edc22ba9
DB
2462008-01-24 Dave Brolley <brolley@redhat.com>
247
248 PR 5017.
249 * staptree.cxx (<cstring>): #include it.
250 (required <indexable *>): Remove 'static' from instantiation and
251 move instantiation to here from...
252 * staptree.h: ...here.
253
6b535ce2
DS
2542008-01-23 David Smith <dsmith@redhat.com>
255
256 PR 5661.
257 * configure.ac: Checks elfutils version number.
258 * acsite.m4: New file containing macro to return elfutils version
259 number.
260 * configure: Regenerated.
261 * systemtap.spec.in: Minimum elfutils version number is now filled
262 in by configure.
263
85278e66
DB
2642008-01-23 Dave Brolley <brolley@redhat.com>
265
edc22ba9 266 PR 5613.
85278e66
DB
267 * translate.cxx (var::fini): New method.
268 (c_unparser::emit_module_init): Call var::fini when deregistering
269 variables without indices.
270 (c_unparser::emit_module_exit): Likewise.
271
25114db1
FCE
2722008-01-23 Frank Ch. Eigler <fche@elastic.org>
273
edc22ba9 274 PR 2151.
25114db1
FCE
275 * tapsets.cxx (dwflpp::setup): Parametrize debuginfo_path.
276 * stap.1.in: Document this.
277
98c22a8e
JK
2782008-01-22 Jim Keniston <jkenisto@us.ibm.com>
279
280 * runtime/uprobes/uprobes.c: Fix from Srinivasa: Recast
281 rcu_dereferences of engine->data to resync with kernel.org
282 builds.
283
7abdfe54
JK
2842008-01-18 Jim Keniston <jkenisto@us.ibm.com>
285
286 * runtime/uprobes/uprobes.c: Added static copy of
287 access_process_vm(), for kernels that don't export it.
288
1e0716d3
FCE
2892008-01-18 Frank Ch. Eigler <fche@elastic.org>
290
bfe2b4ab
FCE
291 * configure.ac, systemtap.spec.in: Update version to 0.6.1
292 * configure: Regenerated.
1e0716d3 293
5d23847d
FCE
2942008-01-17 Frank Ch. Eigler <fche@elastic.org>
295
296 PR 4935.
297 Reorganize probe condition implementation.
298 * elaborate.cxx (add_condition): New function.
299 (derived_probe): Remove condition member.
300 (derived_probe ctors): Assert non-null incoming probe/location ptrs.
301 (insert_condition_statement): Remove; turn into ...
302 (semantic_pass_conditions): New pass-2 subpass.
303 (semantic_pass_symbols, visit_symbol, visit_functioncall, find_var):
304 Detect some condition-related error cases.
305 (match_key): Change type to exp_type from tok_type. Update callers.
306 (alias_expansion_builder): Propagate probe conditions.
307 * staptree.cxx (probe): Remove condition field and related functions.
308 * tapsets.cxx (dwarf_derived_probe ctor): Compute replacement
309 wildcard-expanded probe_point preserving more of the original
310 location.
311 (mark_derived_probe ctor): Make similar to others - take location
312 rather than condition parameters.
313 * translate.cxx (emit_common_header): Tweak ordering of tmpcounter
314 traversal and hashkey expression generation.
315 * elaborate.h: Corresponding changes.
316
4ec2f7d0
DS
3172008-01-17 David Smith <dsmith@redhat.com>
318
319 * tapsets.cxx
320 (procfs_var_expanding_copy_visitor::visit_target_symbol): Print an
321 error when trying to use the procfs target variable '$value' as an
322 array or structure.
af304783
DS
323 (perfmon_var_expanding_copy_visitor::visit_target_symbol): Print an
324 error when trying to use the perfmon target variable '$counter as
325 an array or structure.
4ec2f7d0 326
f853f19d
FCE
3272008-01-17 Srinivasa DS <srinivasa@in.ibm.com>
328
329 PR 5483.
330 * tapsets.cxx (emit_address): Tolerate dummy relocation entry
331 added for kernel by recent elfutils.
332
6f93ef37
DS
3332008-01-16 David Smith <dsmith@redhat.com>
334
335 PR 5608.
4ec2f7d0
DS
336 * tapsets.cxx
337 (mark_var_expanding_copy_visitor::visit_target_symbol): Print an
338 error when trying to use a marker argument as an array or
339 structure.
6f93ef37 340
ed22941d
ET
3412008-01-16 Eugene Teo <eteo@redhat.com>
342
343 * stapfuncs.5.in: Document signal.stp tapset functions.
344
d9787032 3452008-01-14 Martin Hunt <hunt@redhat.com>
f4740301
MH
346 * translate.cxx (emit_module_init): Call _stp_print_kernel_info()
347 to print out version information and internal memory usage stats.
d9787032 348
f4740301 3492008-01-14 Martin Hunt <hunt@redhat.com>
d9787032
MH
350 * translate.cxx (emit_module_exit): When using timing, delete timing
351 stats when finished.
352
05de43cb
FCE
3532008-01-12 Frank Ch. Eigler <fche@elastic.org>
354
355 * configure.ac: Generate a build tree SNAPSHOT file from git-rev-list,
356 if we suspect the source tree came from git.
357 * configure: Regenerated.
358
e6c086bb
FCE
3592008-01-12 Frank Ch. Eigler <fche@elastic.org>
360
361 PR 5603.
362 * configure.ac: Add "--enable-ssp" to select -fstack-protector-all
363 and similar runtime checking directives.
364 * configure: Regenerated.
365
24055820
DS
3662008-01-09 David Smith <dsmith@redhat.com>
367
368 * systemtap.spec.in: Since "make check" was removed
369 from the rpm build step, we no longer need to require dejagnu at
370 build time.
371
464c2dcb
FCE
3722008-01-09 Frank Ch. Eigler <fche@elastic.org>
373
374 * tapsets.cxx (dwflpp::setup): Improve missing kernel-debuginfo
375 message.
376
d5d7f324
FCE
3772008-01-02 Frank Ch. Eigler <fche@elastic.org>
378
379 From Mark McLoughlin <markmc@redhat.com>:
380 * main.cxx (main): Set/restore umask around mkdtemp().
381
212fcc46
JK
3822007-12-27 Jim Keniston <jkenisto@us.ibm.com>
383
384 * runtime/uprobes/uprobes_x86_64.c: Fix handling of indirect
385 jmps and calls that use rip-relative addressing. Allow probing
386 of opcode 0x63.
387
149eaccd
MH
3882007-12-13 Masami Hiramatsu <mhiramat@redhat.com>
389
390 * stap.1.in: Document about relay buffer sharing.
391 * NEWS: Document about relay buffer sharing and staplog crash extension.
392
75686668
WH
3932007-12-12 Wenji Huang <wenji.huang@oracle.com>
394
395 PR 5470
396 * parse.cxx (parser::parse_probe_point): Add checking pointer t.
397
b2199bb3
FCE
3982007-12-11 Frank Ch. Eigler <fche@elastic.org>
399
400 * staptree.cxx, staptree.h: More GCC 4.3 build fixes from
401 Eugeniy Meshcheryakov <eugen@debian.org>.
402
47b0655b
WC
4032007-12-05 William Cohen <wcohen@redhat.com>
404
405 * systemtap.spec.in: Correct Source to point to location contain code.
406
dfd11cc3
MH
4072007-12-05 Masami Hiramatsu <mhiramat@redhat.com>
408
409 PR 4935
410 * tapsets.cxx (dwarf_derived_probe::dwarf_derived_probe): Allow user
411 to access kernel variables in the condition of probe points.
412 * stapprobes.5.in : Document the conditional probe point.
413 * NEWS : Ditto.
414
0c218afb
MH
4152007-12-03 Masami Hiramatsu <mhiramat@redhat.com>
416
417 PR 5376
418 * parse.cxx (lexer::scan): Treat '*' as an alphabet if the wildcard
419 flag is true.
420 (parser::parse_probe_point): Call parser::next() with wildcard = true.
421 (parser::scan_pp): Add wildcard flag and pass it to lexer::scan.
422 (parser::next): Ditto.
423 (parser::peek): Ditto.
424 * parse.h : Ditto.
425
b171146c
FCE
4262007-12-01 Frank Ch. Eigler <fche@elastic.org>
427
428 * gen-stapmark.h, stapmark.h: Retire.
429
d09fee57
DS
4302007-11-29 David Smith <dsmith@redhat.com>
431
432 * tapsets.cxx (mark_derived_probe::initialize_probe_context_vars):
433 Handles the case where one marker has more than one string
434 argument.
435
ddfc759e
DS
4362007-11-27 David Smith <dsmith@redhat.com>
437
438 PR 5377.
439 * elaborate.cxx (match_node::find_and_build): Handle wildcards in
440 probe points correctly.
441
6daa64bd
FCE
4422007-11-26 Frank Ch. Eigler <fche@elastic.org>
443
444 * elaborate.cxx (derived_probe ctor): Don't duplicate condition
445 if it doesn't exist.
80342244 446 * staptree.cxx (probe_point, probe ctors): Initialize to 0.
6daa64bd 447
cbbe8080
MH
4482007-11-20 Masami Hiramatsu <mhiramat@redhat.com>
449
450 PR 4935.
451 * parse.cxx (parser::parse_probe_point): Parse "if" condition
452 following probe point.
453 * staptree.h (probe_point): Add "condition" field.
454 (probe): Add "condition" field and "add_condition" method.
455 (deep_copy_visitor): Add "deep_copy" method for the expression.
456 * staptree.cxx (probe_point::probe_point): Initalize it.
457 (probe::add_condition): Implement it.
458 (probe::print): Output "condition" field.
459 (probe::str): Ditto.
460 (deep_copy_visitor::deep_copy): Implement it.
461 * elaborate.h (derived_probe): Add "insert_condition_statement"
462 method.
463 * elaborate.cxx (derived_probe::derived_probe): Initialize "condition"
464 field, and insert a condition check routine on the top of body.
465 (derived_probe::insert_condition_statement): Implement it.
466 (alias_expansion_builder::build): Pass the condition from the alias
467 referer to new alias.
468 * tapsets.cxx (be_derived_probe): Remove unused constructor.
469 (dwarf_derived_probe::dwarf_derived_probe): Insert a condition check
470 routine on the top of body.
471 (mark_derived_probe::mark_derived_probe): Ditto.
472 (mark_builder::build): Pass the base location to mark_derived_probe.
473
474
d898100a
FCE
4752007-11-19 Frank Ch. Eigler <fche@elastic.org>
476
477 PR 3887.
478 * staptree.h (probe_point): Add "sufficient" field.
479 * staptree.cxx: Initialize it, print it.
480 * parse.cxx (parse_probe_point): Parse it.
481 * elaborate.cxx (derive_probes): Implement it.
482 * stapprobes.5.in: Document it.
483 * NEWS: Gloat about it.
484
3b0c565c
DS
4852007-11-15 David Smith <dsmith@redhat.com>
486
487 * tapsets.cxx (mark_derived_probe::initialize_probe_context_vars):
488 Updated to work with latest LTTNG patch
489 patch-2.6.24-rc2-lttng-0.10-pre23.tar.bz2.
490 (mark_derived_probe_group::emit_module_decls): Ditto.
491 (mark_derived_probe_group::emit_module_init): Ditto.
492 (mark_derived_probe_group::emit_module_exit): Ditto.
493
494 * translate.cxx (c_unparser::emit_common_header): Ditto.
495
1cc094f0 4962007-11-15 Mike Mason <mmlnx@us.ibm.com>
3b0c565c 497
1cc094f0
MM
498 * systemtap.spec.in: Removed "make check" from rpm build steps
499
f781f849
DS
5002007-11-15 David Smith <dsmith@redhat.com>
501
502 * tapsets.cxx: Removed mark_query structure.
503 (mark_derived_probe::mark_derived_probe): Just looks for "kernel"
504 marker probes.
505 (mark_builder::build_no_more): No longer kern_dw, instead clears
506 the marker cache.
507 (mark_builder::build): Now parses Module.markers file to find
508 marker list and stores them in a cache.
509 (register_standard_tapsets): Removed 'module("foo").mark("bar")'.
510 All markers now go through 'kernel.mark("bar")'.
511
512 * stapprobes.5.in (parts): Updated marker text.
513
12dc24bc
JK
5142007-11-14 Jim Keniston <jkenisto@us.ibm.com>
515
516 PR 5324
517 * main.cxx: Restored initialization of need_uprobes flag,
518 mistakenly backed out in PR 5270 fix.
519
0beb52cb
Z
5202007-11-14 Zhaolei <zhaolei@cn.fujitsu.com>
521
522 * stapfuncs.5.in (tokenize): Change NULL to blank to avoid
523 misunderstanding.
524
db3a383b
JK
5252007-11-13 Jim Keniston <jkenisto@us.ibm.com>
526
527 PR 5270
528 * main.cxx: Restored pre-10-08 version: moved uprobes build to
529 buildrun.cxx.
530 * buildrun.cxx: Reworked uprobes build so that the resulting
531 Module.symvers can be used in building the stap-generated
532 module. If user isn't root, call verify_uprobes_uptodate()
533 rather than trying (and failing) to rebuild uprobes.ko.
534 * buildrun.h: uprobes_enabled() and make_uprobes() are no
535 longer extern.
536 * runtime/uprobes/Makefile: Added uprobes.ko target for use
537 by verify_uprobes_uptodate().
538
32784362
MH
5392007-11-12 Martin Hunt <hunt@redhat.com>
540
163a52d9
MH
541 * stap.1.in: Replaced references to the log() function.
542 * stapex.5.in: Ditto.
543 * stapfuncs.5.in: Ditto. ALso remove print and printf. They are
544 documented in stap.1.in.
6e7c6be2
RM
545
5462007-11-12 Martin Hunt <hunt@redhat.com>
163a52d9 547
32784362
MH
548 * translate.cxx (visit_print_format): Strings without a format or
549 formatted with "%s" or "%s\n" should be printed with calls to _stp_print().
550 Call _stp_print_char() if printing a char.
551
552 * staptree.cxx (parse_print): Check for "print_char".
553
554 * staptree.h (struct print_format): Add print_char.
555 (parse_print): Update prototype.
556
557 * parse.cxx (parse_symbol): Set print_char bool in print_format.
558
5592007-11-12 Martin Hunt <hunt@redhat.com>
6e7c6be2 560
32784362
MH
561 * tapsets.cxx (build_blacklist): Add __raw_spin_is_locked.
562
2532d1d6
JS
5632007-10-25 Josh Stone <joshua.i.stone@intel.com>
564
565 PR 5219
566 * stap.1.in: Add a note about string literal limitations in printf
567 and printd.
568
aa1547b4
JK
5692007-10-22 Jim Keniston <jkenisto@us.ibm.com>
570
571 * runtime/uprobes/uprobes_x86_64.[ch]: Added x86_64 uprobes support
572
f994dd49
JK
5732007-10-19 Jim Keniston <jkenisto@us.ibm.com>
574
575 * runtime/uprobes/uprobes_ppc64.h,uprobes_s390.c: Fixed 10/16
576 update to arch_validate_probed_insn() decl.
577
982b7e15
MH
5782007-10-19 Masami Hiramatsu <mhiramat@redhat.com>
579
580 * staplog.c: Cleanup code and remove end-of-line spaces.
581 (create_output_filename): Use snprintf instead of sprintf and remove
582 malloc().
583 (print_rchan_info): Merge into output_cpu_logs().
584 (open_output_file): Use GETBUF() instead of malloc().
585 (output_cpu_logs): Simplify logic and remove unused code.
586 (do_staplog): Merge into cmd_staplog().
587 (help_staplog): Fix typos.
588 * Makefile.am (STAPLOG): Add -Wall option.
589 * Makefile.in: Regenerated.
590
1673e81e
MH
5912007-10-19 Masami Hiramatsu <mhiramat@redhat.com>
592
593 From Satoru Moriya <satoru.moriya.br@hitachi.com>:
982b7e15 594 * staplog.c (create_output_dir): New function for creating output
1673e81e
MH
595 directory.
596 (create_output_filename): New function for making output filename.
597 (print_rchan_info): New function for displaying relay channel status.
598 (open_output_file): New function for opening output file.
599 (output_cpu_logs): Cleanup code and fix bugs to retrieve buffer
600 data even when the last buffer is full and even if the systemtap
601 uses old(non-utt) format. Add a routine for '-a' option.
602 (cmd_staplog): Add '-a' option.
603 (help_staplog): Ditto.
604
ca88561f
MM
6052007-10-18 Mike Mason <mmlnx@us.ibm.com>
606
607 * stapprobes.5.in: Removed C label reference.
608 Clarified source path requirements for probe
6e7c6be2
RM
609 definitions. Fixed some vertical spacing
610 issues.
ca88561f 611
f5ceb0fa
MM
6122007-10-18 Mike Mason <mmlnx@us.ibm.com>
613
614 * stapfuncs.5.in: Corrected tokenize description.
6e7c6be2 615 Added task_* functions.
f5ceb0fa 616
de14b6da
JK
6172007-10-16 Jim Keniston <jkenisto@us.ibm.com>
618
619 * runtime/uprobes/uprobes.[ch], uprobes_i386.[ch],
620 uprobes_ppc64.h, uprobes_s390.h: Adjusted SLOT_IP and
621 arch_validate_probed_insn to accept task pointer (needed by
622 x86_64); added uprobe_probept_arch_info and uprobe_task_arch_info
623 (ditto).
624 * runtime/uprobes/uprobes_i386.c: Fixed a couple of glitches
625 discovered when porting to x86_64
626
e3632368
RM
6272007-10-15 Roland McGrath <roland@redhat.com>
628
629 PR 5101
630 * loc2c.c (struct location): Replace regno union member with struct
631 member reg, fields regno and offset.
632 (translate): Update uses.
633 (emit_base_fetch, emit_base_store, emit_loc_register): Likewise.
634 Fail if reg.offset is not zero.
635 (location_relative): Handle DW_OP_plus_uconst relative to loc_register.
636 (c_translate_array): Handle array index into loc_register.
637
f2f51a0e
DS
6382007-10-15 David Smith <dsmith@redhat.com>
639
5089603f
DS
640 * tapsets.cxx (mark_query::handle_query_module): Checks for marker
641 to be in the proper section.
642 (mark_derived_probe_group::emit_module_decls): Updated emitted
643 marker C code for 10/2/2007 markers patch. Fixes PR 5178.
644
f2f51a0e
DS
645 From David Wilder <dwilder@us.ibm.com>
646 * tapsets.cxx (mark_query::handle_query_module): Updated to handle
647 64-bit platforms correctly.
648
487ab975
Z
6492007-10-15 Zhaolei <zhaolei@cn.fujitsu.com>
650
651 From Cai Fei <caifei@cn.fujitsu.com>
652 * conversions.stp: Add a function kernel_string_n for copy
653 non-0-terminated string with fixed length from kernel space at
654 given address.
655 * stapfuncs.5.in: Add kernel_string_n.
656 * nfsd.stp: Using kernel_string_n to copy non-0-terminated string
657 with fixed length from kernel space at given address.
658 * nfs_proc.stp: Ditto.
659
1969b5bc
DS
6602007-10-12 David Smith <dsmith@redhat.com>
661
662 * tapsets.cxx (dwflpp::setup): Added 'debuginfo_needed' parameter
663 to not error if no debuginfo present.
664 (hex_dump): New function.
665 (mark_query::handle_query_module): Updated for
666 10/2/2007 markers patch. Currently only handles markers in the
667 kernel image itself - not in modules.
e3632368 668
7651c16b
MH
6692007-10-12 Martin Hunt <hunt@redhat.com>
670
671 * Makefile.am (staprun_LDADD): Add -lpthread.
672 * Makefile.in: Rebuilt.
673
0fda8ffb
FCE
6742007-10-11 Frank Ch. Eigler <fche@elastic.org>
675
676 * systemtap.spec.in: Make -testsuite subrpm require dejagnu.
677
4d3b8839
JK
6782007-10-10 Jim Keniston <jkenisto@us.ibm.com>
679
680 * runtime/uprobes/uprobes_ppc64.[ch]: Added
681 * runtime/uprobes/uprobes_s390.[ch]: Added
682
35f3ab9e
JK
6832007-10-09 Jim Keniston <jkenisto@us.ibm.com>
684
685 PR 5083
686 * runtime/uprobes/uprobes.c: Adjust module ref-count
687 when creating or removing uprobe_process, so "rmmod
688 --wait uprobes" waits as needed until uretprobed
689 functions return.
690
236462f2
JK
6912007-10-08 Jim Keniston <jkenisto@us.ibm.com>
692
693 PR 5079
694 * main.cxx: Add pass 4.5: make uprobes.ko in runtime/uprobes
695 * buildrun.cxx: Add uprobes_enabled() and make_uprobes().
696 Factor run_make_cmd() out of compile_pass().
697 * buildrun.h: Add uprobes_enabled and make_uprobes decls.
698 * tapsets.cxx: Do correct #include for modprobed uprobes.ko;
699 set need_uprobes in pass 2.
700 * session.h: Add need_uprobes
701
702 * runtime/staprun/common.c: Add -u option -> need_uprobes
703 * runtime/staprun/staprun_funcs.c: Generalize insert_module()
704 to support inserting uprobes.ko.
705 * runtime/staprun/staprun.c: Add enable_uprobes(). insert_module
706 call becomes insert_stap_module().
707 * runtime/staprun/staprun.h: Reflect insert_module() and
708 need_uprobes changes
709
e3632368
RM
710 * runtime/uprobes/*.[c,h]: uprobes is built as a module,
711 rather than included into the source of the stap-generated
236462f2
JK
712 module.
713 * runtime/uprobes/Makefile: Added
714
a9e8f7e0
FCE
7152007-10-05 Frank Ch. Eigler <fche@elastic.org>
716
717 PR 1119
718 * elaborate.cxx (semantic_pass_opt[12]): Warn on elided
719 variables/functions in user script.
720 * session.h (suppress_warnings): New field. Change
721 "timing" to plain old bool.
722 * main.cxx (main): Configure warnings on by default.
723 * stap.1.in: Document this.
724
8f3c45cc
FCE
7252007-10-05 Frank Ch. Eigler <fche@elastic.org>
726
727 PR 5036
728 * systemtap.spec.in: Create new systemtap-testsuite sub-rpm.
729 Install crash(8)'s staplog.so into -runtime sub-rpm if built.
730 * Makefile.am (rpm): New target.
731 * Makefile.in: Regenerated.
732
bfb72442
FCE
7332007-10-04 Frank Ch. Eigler <fche@elastic.org>
734
735 * stapfuncs.5.in: Document inet.stp tapset functions.
736
0986ac38
DS
7372007-10-04 David Smith <dsmith@redhat.com>
738
739 * buildrun.cxx (compile_pass): Tweaked build system for the
740 2.6.23-rc8-mm2 kernel.
741
99613db7
FCE
7422007-10-03 Frank Ch. Eigler <fche@elastic.org>
743
744 PR 5102
745 * translate.cxx (visit_statement): Add new parameter regarding whether
746 c->last_stmt needs to be updated. Update callers, mostly passing
747 "false".
748 (visit_EXPRESSIONTYPE): Generally omit setting c->last_stmt, unless
749 the construct can set c->last_error.
750
60ba482c
FCE
7512007-10-03 Frank Ch. Eigler <fche@elastic.org>
752
753 PR 5096
754 * translate.cxx (emit_function): Put nesting limit/control logic into
755 function body ...
756 (visit_functioncall): ... and not into each call site.
757
4a6d3dfa
FCE
7582007-10-02 Frank Ch. Eigler <fche@redhat.com>
759
760 PR 3635
761 * translate.cxx (emit_global): Wrap all globals and locks into one
762 top-level struct. Update references to former "global_VAR" prefix.
763 * translate.h (emit_global_init): New function.
e3632368 764
65aeaea0
FCE
7652007-10-02 Frank Ch. Eigler <fche@redhat.com>
766
767 PR 5078
768 * tapsets.cxx (be_derived_probe): Rework to add error probe support.
769 Emit probe description array in C for traversal by generated code.
770 * register_standard_tapsets: Add error probes.
771 * stapprobes.5.in: Document.
772 * translate.cxx (emit_module_init): Handle errors that may occur
773 during begin probes.
774 (emit_module_exit): Use schedule() rather than cpu_relax() during
775 shutdown synchronization wait loop.
776 * staptree.cxx (probe::printsig): Put multiple probe points on same
777 line.
778
c77ffc8e
FCE
7792007-09-28 Frank Ch. Eigler <fche@elastic.org>
780
781 * Makefile.in: Regenerated from Jim Keniston's uprobes Makefile.am
782 changes.
783
c56866d4
JS
7842007-09-25 Josh Stone <joshua.i.stone@intel.com>
785
786 * tapsets.cxx (translator_output::~translator_output): Fix mismatched
787 delete / delete [].
788
38c963a9
DS
7892007-09-25 David Smith <dsmith@redhat.com>
790
791 * tapsets.cxx (mark_query::handle_query_module): Updated for
792 9/18/2007 markers patch.
793 (mark_derived_probe::parse_probe_sig): Ditto.
794 (mark_derived_probe_group::emit_module_decls): Ditto.
795 (mark_derived_probe_group::emit_module_init): Ditto.
796 (mark_derived_probe_group::emit_module_exit): Ditto.
797
ca99ed19
MH
7982007-09-24 Masami Hiramatsu <mhiramat@redhat.com>
799
800 PR 3916
801 * buildrun.cxx (compile_pass): Add new autoconf options for checking
802 time related APIs.
803
739a3e81
FCE
8042007-09-21 Frank Ch. Eigler <fche@elastic.org>
805
806 rhbz #300121
807 * elaborate.cxx (dead_stmtexpr_remover): Add visit_if_statement,
808 visit_foreach_loop, visit_for_loop): Support elision for unbraced
809 statement bodies.
810 (visit_expr_statement): Assert absence of unexpected nesting.
811
227cacb9
DS
8122007-09-17 David Smith <dsmith@redhat.com>
813
9cb48751
DS
814 PR 1154
815 * stapprobes.5.in: Documented procfs probes.
816
227cacb9
DS
817 * tapsets.cxx (procfs_builder::build): Validate procfs path.
818
cf8dc3c7
DS
8192007-09-14 David Smith <dsmith@redhat.com>
820
821 PR 1154
822 * tapsets.cxx
823 (procfs_var_expanding_copy_visitor::visit_target_symbol):
824 Disallows reading from $value in a procfs read probe.
e3632368 825
bcf31db4
DS
8262007-09-14 David Smith <dsmith@redhat.com>
827
828 PR 1154
829 * tapsets.cxx (procfs_derived_probe_group::emit_module_init):
830 Fixed problem where if only one type (read/write) of procfs probe
831 was defined, the generated code wouldn't compile.
832
007f0f1c
DS
8332007-09-13 David Smith <dsmith@redhat.com>
834
835 PR 1154
836 * tapsets.cxx (procfs_derived_probe::procfs_derived_probe):
837 Removed debug print.
838 (procfs_derived_probe_group::emit_module_decls): Improved error
839 handling and added support for procfs.write probes.
840 (procfs_var_expanding_copy_visitor::visit_target_symbol): Removed
841 debug print.
842
2f5a9fd3
FCE
8432007-09-12 Frank Ch. Eigler <fche@elastic.org>
844
845 * parse.cxx (parse_symbol): Accept println(@hist*()).
846
0a08ca99
FCE
8472007-09-12 Frank Ch. Eigler <fche@elastic.org>
848
849 PR 5023
850 * translate.cxx (c_unparser::visit_literal_number): Support LLONG_MIN.
851 (visit_unary_expression): Likewise.
852
e38723d2 8532007-09-12 Martin Hunt <hunt@redhat.com>
0a08ca99 854
e38723d2
MH
855 PR 5019
856 * elaborate.cxx (visit_hist_op): Remove log histogram param.
857 * translate.cxx (assert_hist_compatible): Ditto.
858 * staptree.cxx (hist_op::print): Ditto.
859 * session.h (statistic_decl): Ditto.
e3632368 860
e38723d2 861 * parse.cxx (expect_number): Allow negative numbers.
e3632368 862 Also validate that input is really numeric. This is used
e38723d2
MH
863 by histograms to get the parameters.
864 (parse_hist_op_or_bare_name): Remove code to get parameter
e3632368 865 for log histograms.
e38723d2 866
87ebf4cb
DS
8672007-09-12 David Smith <dsmith@redhat.com>
868
869 * translate.cxx (c_unparser::emit_common_header): Added 'data'
870 variable to context structure to support procfs probes.
871 * tapsets.cxx: Improved procfs probe handling.
872
ce82316f
DS
8732007-09-10 David Smith <dsmith@redhat.com>
874
875 * tapsets.cxx (procfs_derived_probe_group::emit_module_init):
876 Improved procfs probe handling (still non-working).
877 (procfs_builder::build): Ditto.
878 (register_standard_tapsets): Ditto.
879 (all_session_groups): Ditto.
880
604eef3b
MH
8812007-09-10 Martin Hunt <hunt@redhat.com>
882
e3632368 883 * tapsets.cxx, session.h, elaborate.cxx: Start of procfs
604eef3b
MH
884 interaction support. PR 1154.
885
a721fbcf
MH
8862007-09-06 Masami Hiramatsu <mhiramat@redhat.com>
887
888 PR 4542
889 * tapsets.cxx (dwarf_query::build_blacklist): add __switch_to to
890 blacklisted_return_probes on i686
891
e1407ce0
DS
8922007-08-30 David Smith <dsmith@redhat.com>
893
894 PR 4983
895 * translate.cxx (c_tmpcounter::visit_print_format): Don't declare
896 temporaries for number and string constants.
897 (c_unparser::visit_print_format): Use numeric and string constants
898 directly instead of copying them into temporaries.
899
6d4a0530
FCE
9002007-08-27 Frank Ch. Eigler <fche@redhat.com>
901
902 PR 4817
903 * NEWS: Mention retirement of LKET.
904 * configure.ac: Remove mysql dependency.
905 * systemtap.spec.in: Remove glib2 dependency.
906 * configure, config.in: Regenerated.
907
10b20266
FCE
9082007-08-24 Frank Ch. Eigler <fche@elastic.org>
909
910 * configure.ac: Check for proper $PROCFLAGS-dependent -lcap.
911 * Makefile.am (staprun_LDADD): Use autoconf variable rather than
912 -lcap literal.
913 * configure, aclocal.m4, Makefile.in, config.in: Regenerated.
914
fedd4090
FCE
9152007-08-24 Frank Ch. Eigler <fche@redhat.com>
916
917 PR 4899
918 * tapsets.cxx (dwflpp::has_single_line_record): Extended,
919 abstraction violated.
920 (iterate_over_srcfile_lines): Remove exactly line number match
921 logic. Improve error message to offered better-checked alternative
922 line numbers.
923 (query_srcfile_line): Whoops, pass scope_die down for statement("...")
924 probes, to enable $target var processing.
925
6a59236b
DS
9262007-08-21 David Smith <dsmith@redhat.com>
927
928 PR 2305
929 * translate.cxx (c_unparser::visit_foreach_loop): When the user
930 requested sorting an array of aggregates by value, sort by
931 @count.
932
8c711d30 9332007-08-20 Martin Hunt <hunt@redhat.com>
fedd4090
FCE
934
935 PR 2424
936 From Lai Jiangshan <laijs@cn.fujitsu.com:
e3632368 937 * util.cxx (cmdstr_quoted): New. Properly quote
8c711d30
MH
938 command string.
939 * buildrun.cxx (run_pass): Call cmdstr_quoted().
940
faf96009
FCE
9412007-08-20 Frank Ch. Eigler <fche@elastic.org>
942
943 From Satoru MORIYA <satoru.moriya.br@hitachi.com>
944 * staplog.c: Updated.
945
54dec22d
DS
9462007-08-20 David Smith <dsmith@redhat.com>
947
948 From Lai Jiangshan <laijs@cn.fujitsu.com>
949 * main.cxx (main): Make sure the '-c' and '-x' options can't be
950 specified together.
951
6c543717
FCE
9522007-08-17 Frank Ch. Eigler <fche@elastic.org>
953
954 As suggested by "Zhaolei" <zhaolei@cn.fujitsu.com>:
955 * elaborate.cxx (semantic_pass_optimize[12],
956 unresolved, invalid, mismatch): Use stringstream and
957 print_error(semantic_error) instead of ad-hoc cerr.
958
1902aec1
FCE
9592007-08-16 Frank Ch. Eigler <fche@elastic.org>
960
961 PR 1315.
962 * stapfuncs.5.in: Document new target_set tapset.
963
7ab87feb
FCE
9642007-08-16 Frank Ch. Eigler <fche@elastic.org>
965
966 * Makefile.am (install-exec-hook): Only make staprun setuid if
967 "make install" is being run as root.
968 * Makefile.in: Regenerated.
969
3cb17058
JS
9702007-08-16 Josh Stone <joshua.i.stone@intel.com>
971
972 PR 4591
973 * parse.cxx (parser::parse_symbol): Tweak 'print' matching to allow
974 all the new variants with printd and println.
975 * staptree.h (struct print_format): Add fields for the new print
976 variants, and parse_print() to help matching.
977 * staptree.cxx (print_format::parse_print): New static method to
978 match the print variants and determine their properties.
979 (print_format::print): Handle the new print types.
980 (deep_copy_visitor::visit_print_format): Copy the new fields.
981 * translate.cxx (c_unparser::visit_print_format): Insert delims and
982 newlines where appropriate for new print functions.
983 * stap1.in: Document the new print functions.
984
52e5362b
DS
9852007-08-15 David Smith <dsmith@redhat.com>
986
987 * systemtap.spec.in: Updated %pre to latest Fedora group creation
988 guidelines.
989
990 * stap.1.in: Changed '/usr' to '@prefix@' so the values will be
991 updated correctly.
992 * stapfunc.5.in: Ditto.
993
994 * README.security: Typo fix.
995
5a5e5134
MH
9962007-08-15 Martin Hunt <hunt@redhat.com>
997
998 * Makefile.am: Removed stap_merge.
999 * Makefile.in: Rebuilt.
1000
98aab489
DS
10012007-08-14 David Smith <dsmith@redhat.com>
1002
1003 Merge from setuid-branch. Changes also by Martin Hunt
1004 <hunt@redhat.com>.
1005
1006 * Makefile.am: Added staprun_funcs.c and cap.c to
1007 staprun_SOURCES. Added -lcap to staprun_LDADD. Removed
1008 stp_check reference. Added stapio program. Staprun is now
1009 setuid.
1010 * Makefile.in: Rebuilt.
1011
1012 * configure.ac: Version increase to 0.6 and checks for libcap
1013 availability. Removed stp_check reference.
1014 * configure: Regenerated.
1015 * stp_check.in: Removed.
1016
1017 * systemtap.spec.in: Version increase to 0.6-1 and added
1018 BuildReq for libcap-devl (and removed sudo requirement).
1019 Added %pre script to create new groups. Staprun is now
1020 setuid.
1021
1022 * NEWS: Added info on new security model.
1023 * INTERNALS: Removed sudo reference.
1024
1025 * README.security: New file.
1026
1027 * main.cxx (main): Make sure module name isn't too long.
1028 * hash.cxx: Moved MODULE_NAME_LEN define to hash.h.
1029 * hash.h: Moved MODULE_NAME_LEN define here from hash.cxx.
1030
1031 * buildrun.cxx (run_pass): No longer runs staprun with "sudo".
1032
1033 * stap.1.in: Removed sudo references and added information about
1034 the stapdev/stapusr groups.
1035 * staprun.8.in: Added information about module detaching and
1036 attaching. Removed sudo references and added information
1037 about the stapdev/stapusr groups. Removed reference to
1038 staprun needing to be run as root. Removed reference to
1039 removed '-u USERNAME' option.
1040
1041 * .cvsignore: Removed stp_check and added stapio and stap_merge.
1042
8d164e0c
JS
10432007-08-10 Josh Stone <joshua.i.stone@intel.com>
1044
1045 PR 4593
1046 * translate.cxx (c_unparser::emit_common_header): Add an
1047 error_buffer to the context to allow dynamic error messages.
1048 * tapsets.cxx (dwflpp::express_as_string): Let deref / store_deref
1049 fill in last_error with a detailed message.
1050
802e6327
FCE
10512007-08-09 Frank Ch. Eigler <fche@elastic.org>
1052
1053 From Lai Jiangshan <laijs@cn.fujitsu.com>:
1054 * translate.cxx (emit_module_exit): Use stp_warn for warning.
1055
3f99432c
FCE
10562007-08-07 Frank Ch. Eigler <fche@redhat.com>
1057
1058 PR 4846
1059 * parse.cxx (input_put): New function, sort of like stdio ungetc.
1060 (input_get): Skip cursor position changing for input_put strings.
1061 (scan): Rework $.../@... substitution into character pasting.
1062 * parse.h: Corresponding changes.
1063 * util.h (lex_cast_qstring): Octal-quote unprintable characters.
1064 * stap.1.in, NEWS: Document new behaviour.
1065
fc52ef5b
DS
10662007-07-26 David Smith <dsmith@redhat.com>
1067
1068 PR 4295
1069 * main.cxx (main): If '-m MODNAME' is used, the generated module
1070 is saved in the current directory.
1071 * stap.1.in: Updated '-m' description.
1072
d8c3d602
WC
10732007-07-11 William Cohen <wcohen@redhat.com>
1074
1075 * systemtap.spec.in: Make sqlite support selectable.
e3632368 1076
1c0b94ef
FCE
10772007-07-11 Frank Ch. Eigler <fche@elastic.org>
1078
1079 * configure.ac: Don't AC_MSG_ERROR if don't HAVE_LIBSQLITE3.
1080 * coveragedb.cxx: Compile to nothing unless HAVE_LIBSQLITE3.
1081 * main.cxx: Print no error message on -q if HAVE_LIBSQLITE3.
1082 * configure: Regenerated, looks rosier with HAVE_LIBSQLITE3.
1083
8a2b19ab
WC
10842007-07-08 William Cohen <wcohen@redhat.com>
1085
1086 PR 4529
1087 * coveragedb.cxx (update_coverage_db): Make index "unique" to optimize.
1088
b34237a1
WC
10892007-07-08 William Cohen <wcohen@redhat.com>
1090
1091 PR 4529
1092 * coveragedb.h (db_type): New enum for type column in coverage_element.
1093 (coverage_element): Remove removed column, change type to int.
1094 * coveragedb.cxx (has_table, has_index): New.
1095 (update_coverage_db): Use has_table, has_index.
1096 (enter_element): Change for new table format.
1097 (increment_element): Ditto.
1098 (sql_update_used_probes): Ditto.
1099 (sql_update_unused_probes): Ditto.
1100 (sql_update_used_functions): Ditto.
1101 (sql_update_unused_functions): Ditto.
1102 (sql_update_used_globals): Ditto.
1103 (sql_update_unused_globals): Ditto.
1104 (update_coverage_db): Ditto.
1105 (print_coverage_info(systemtap_session): Relocate vector.
1106 (sql_update_used_probes): Ditto.
1107 (sql_update_unused_probes): Ditto.
e3632368 1108
db6f191e
FCE
11092007-07-03 Frank Ch. Eigler <fche@elastic.org>
1110
1111 * configure.ac: Bumped version to 0.5.15 for development.
1112 * configure: Regenerated.
1113
c0b1a50a
RM
11142007-07-03 Roland McGrath <roland@frob.com>
1115
1116 * Makefile.am (install-exec-local, install-elfutils): Use $(DESTDIR).
1117 (SRCDIR): Variable removed.
1118 (check): Use sh code in commands instead.
1119 * Makefile.in: Regenerated.
1120
ed7742ee 11212007-07-02 William Cohen <wcohen@redhat.com>
c0b1a50a 1122
ed7742ee
WC
1123 PR 4717
1124 From Eugeniy Meshcheryakov <eugen@debian.org>
1125 * staptree.cxx: Add #include <cstdlib> for gcc 4.3.
1126
35a04c8e
FCE
11272007-07-02 Frank Ch. Eigler <fche@rechat.com>
1128
1129 * staplog.c: New file from Satoru MORIYA
1130 <satoru.moriya.br@hitachi.com>, prototype crash(8) extension module.
1131 * configure.ac: Look for crash/defs.h.
1132 * Makefile.am: Build/install staplog.so shared library if found.
1133 * configure, Makefile, config.in, runtime/lket/b2a/Makefile.in:
1134 Regenerated.
1135
6deb9753 11362007-07-02 William Cohen <wcohen@redhat.com>
35a04c8e 1137
6deb9753
WC
1138 PR 4720
1139 * staptree.cxx (probe_point::print): Remove stray output.
c0b1a50a 1140
42feb3c0 11412007-06-29 William Cohen <wcohen@redhat.com>
35a04c8e 1142
42feb3c0
WC
1143 PR 4529
1144 * configure.ac:
1145 * Makefile.am: Limit where sqlite3 linked in.
1146 * configure:
1147 * Makefile.in: Regenerate.
1148
6b1a0274
WC
11492007-06-29 William Cohen <wcohen@redhat.com>
1150
1151 PR 4529
1152 * configure.ac:
1153 * Makefile.am: Limit where sqlite3 linked in.
1154 * configure:
1155 * Makefile.in: Regenerate.
1156
1157 * coveragedb.cxx (update_coverage_db): Remove unneeded print.
1158 * coveragedb.cxx (increment_element): Correct formatting.
c0b1a50a 1159
9858f23c
WC
11602007-06-26 William Cohen <wcohen@redhat.com>
1161
1162 * staptree.cxx (probe_point::print): Remove stray "\n".
c0b1a50a 1163
c44d44bf
WC
11642007-06-26 William Cohen <wcohen@redhat.com>
1165
1166 PR 4529
1167 * coveragedb.cxx: New.
1168 * coveragedb.h: New.
1169 * Makefile.am: Add coveragedb.cxx and sqlite3 to build.
1170 * Makefile.in: Regenerated.
1171 * configure.ac: Add test for sqlite3
1172 * configure: Regenerated.
1173 * systemtap.spec.in: Add dependencies for sqlite3/sqlite3-devel.
1174 * elaborate.h, elaborate.cxx
1175 (derived_probe::collect_derivation_chain): New.
1176 (alias_expansion_builder::build): Correct token location.
1177 (semantic_pass_opt[12): Track used and unused variables/functions.
1178 * session.h (tapset_compile_coverage, unused_globals,
1179 unused_probes, unused_functions): New fields.
1180 * staptree.h (unused_locals, probe_point::str): New member.
1181 * staptree.cxx: Ditto.
1182 * main.cxx: Add "-q" tapset coverage option and SYSTEMTAP_COVERAGE env.
c0b1a50a 1183
5e0d2ebf
DS
11842007-06-21 David Smith <dsmith@redhat.com>
1185
1186 * Makefile.in: Regenerated with automake 1.10.
1187 * aclocal.m4: Regenerated with aclocal 1.10.
1188 * configure: Regenerated.
1189
0bcb278d
MH
11902007-06-20 Martin Hunt <hunt@redhat.com>
1191
1192 * Makefile.am (noinst_PROGRAMS): Add stap_merge.
1193 * Makefile.in: Rebuilt:
1194 * config.in: Rebuilt
1195
8ae7a94a
FCE
11962007-06-20 Frank Ch. Eigler <fche@elastic.org>
1197
1198 * configure.ac: Added AM_PROG_CC_C_O for compatibility with
1199 automake 1.10.
1200 * configure, aclocal.m4: Regenerated.
1201
861c2f28
DS
12022007-06-20 David Smith <dsmith@redhat.com>
1203
1204 * buildrun.cxx (compile_pass): Unset environment variables that
1205 could interfere with building the kernel module. Fixes PR 4664.
1206 * main.cxx (main): Unsets a few standard environment variables for
1207 safety.
1208
6b159469
DS
12092007-06-18 David Smith <dsmith@redhat.com>
1210
1211 * staprun.8.in: Fixed a couple of typos.
1212
d6b38089
FCE
12132007-06-15 Frank Ch. Eigler <fche@elastic.org>
1214
1215 PR 3331 cont'd.
1216 * loc2c.c (base_encoding): Tolerate absenece of DW_AT_encoding.
1217 (c_translate_pointer): Don't even try to find signedness, assume
1218 unsigned.
1219
c4a94c1a
FCE
12202007-06-14 Frank Ch. Eigler <fche@elastic.org>
1221
1222 * translate.cxx (emit_module_init): Emit translator/elfutils
1223 version numbers together.
1224 * main.cxx (version): Ditto.
1225 (main): Skip printing tapset directories where no sources were found.
1226
83f1d2e5
FCE
12272007-06-14 Frank Ch. Eigler <fche@elastic.org>
1228
1229 PR 3331 cont'd.
1230 * loc2c.c (emit_base_fetch): Emit size/signedness cast
1231 slightly differently for every low-level fetch.
1232 (translate_base_fetch, c_translate_fetch, c_translate_store,
1233 c_translate_pointer): Fetch & pass the $target signedness.
1234 (base_encoding): Follow typedefs etc.
1235
66e00001
FCE
12362007-06-09 Frank Ch. Eigler <fche@elastic.org>
1237
1238 PR 4609
1239 From Eugeniy Meshcheryakov <eugen@debian.org>
1240 * staptree.cxx: Add #include <algorithm> for gcc 4.3.
1241
70d28673
DS
12422007-06-08 David Smith <dsmith@redhat.com>
1243
1244 PR 4553.
1245 * configure.ac: For x86 systems with gcc versions less than 4,
1246 automatically default to enabling prologue searching.
1247 * configure: Regenerated.
c0b1a50a 1248
e41b2484
FCE
12492007-06-05 Frank Ch. Eigler <fche@redhat.com>
1250
1251 PR 3331.
1252 * loc2c.c (emit_base_fetch): Emit size/signedness cast
1253 for every low-level fetch.
1254 (translate_base_fetch, c_translate_fetch, c_translate_store,
1255 c_translate_pointer): Fetch & pass the $target signedness.
1256
f74fb737
FCE
12572007-05-31 Frank Ch. Eigler <fche@elastic.org>
1258
1259 PR 3579
1260 From Eugeniy Meshcheryakov <eugen@debian.org>
1261 * cache.cxx, parse.cxx: Add #include <cstring> for gcc 4.3.
1262
cf9ff341
FCE
12632007-05-30 Frank Ch. Eigler <fche@redhat.com>
1264
1265 PR 4567.
1266 * staptree.cxx (varuse_collecting_visitor): Add side-effect
1267 result query functions.
1268 * elaborate.cxx (dead_stmtexpr_remover::visit_expr_statement):
1269 Switch to it.
1270 (dead_assignment_remover::visit_assignment): Skip elision of
1271 lvalues with side-effects in index exprs.
1272 * staptree.h: Corresponding changes.
1273
888af770
FCE
12742007-05-25 Frank Ch. Eigler <fche@redhat.com>
1275
1276 PR 4255 teaser.
1277 * elaborate.cxx (has_null_param): New function.
1278 * elaborate.h: Declare it.
1279 * session.h: Include uprobe_derived_probes group.
1280 * tapsets.cxx (uprobe_*): New classes.
1281 (all_session_groups): List uprobes in list.
1282 (register_standard_tapset): Interpret
1283 process(#).statement(#).absolute and
1284 process(#).statement(#).absolute.return probe points.
1285
d99bc65f
MH
12862007-05-25 Martin Hunt <hunt@redhat.com>
1287
1288 Patch from Quentin Barnes.
1289 * tapsets.cxx (query_module): Add support for arm.
1290
2c384610
DS
12912007-05-21 David Smith <dsmith@redhat.com>
1292
1293 PR 4446.
1294 * elaborate.h (derived_probe::initialize_probe_context_vars): New
1295 virtual function that will allow added context vars to be
1296 initialized.
1297 * translate.cxx (c_unparser::emit_common_header): Added
1298 'mark_va_list'.
1299 (c_unparser::emit_probe): Calls new function
1300 initialize_probe_context_vars.
1301 (translate_pass): Includes linux/marker.h if CONFIG_MARKERS is
1302 defined.
1303 * tapsets.cxx (struct dwarf_query): Split into base_query (which
1304 contains most of the original code) and a much smaller
1305 dwarf_query class.
1306 (struct base_query): New class.
1307 (dwarf_query::handle_query_module): New function.
1308 (query_module): Moved code into dwarf_query::handle_query_module().
1309 (mark_derived_probe): Adjusted for new kernel markers.
1310 (mark_derived_probe_group): Ditto.
1311 (mark_var_expanding_copy_visitor): Ditto.
1312 (mark_var_expanding_copy_visitor::visit_target_symbol): Generates
1313 code for new kernel markers.
1314 (struct mark_query): New class.
1315 (mark_query::handle_query_module): New function.
1316 (mark_derived_probe::mark_derived_probe): Adjusted for new kernel
1317 markers.
1318 (mark_derived_probe::join_group): Ditto.
1319 (mark_derived_probe::emit_probe_context_vars): Ditto.
1320 (mark_derived_probe::parse_probe_sig): New function.
1321 (mark_derived_probe::initialize_probe_context_vars): New function.
1322 (mark_derived_probe::emit_module_decls): Adjust for new kernel markers.
1323 (mark_derived_probe::emit_module_init): Ditto.
1324 (mark_derived_probe::emit_module_exit): Ditto.
1325 (struct mark_builder): Ditto.
1326 (mark_builder::build): Ditto.
1327
639948b1
MH
13282007-05-08 Martin Hunt <hunt@redhat.com>
1329
1330 * buildrun.cxx (run_pass): Send proper verbosity
1331 level to staprun
1332
847bf07f
FCE
13332007-05-06 Frank Ch. Eigler <fche@elastic.org>
1334
1335 PR 1305.
c0b1a50a 1336 * tapsets.cxx (iterate_over_srcfile_lines): Exclude approximate
847bf07f
FCE
1337 file:lineno matches optimistically returned by dwarf_getsrc_file.
1338 (query_srcfile_line): Use Dwarf_Line line number for constructing
1339 derived_probe location string.
1340
94603dab
DS
13412007-05-02 David Smith <dsmith@redhat.com>
1342
1343 * translate.cxx (c_tmpcounter::visit_functioncall): Updated
1344 temporary handling.
1345 (c_unparser::visit_functioncall): No longer copies numeric and
1346 string constants to temporary variables.
1347
1ae2676e
DS
13482007-05-01 David Smith <dsmith@redhat.com>
1349
1350 * translate.cxx (c_tmpcounter::visit_binary_expression): Updated
1351 temporary handling.
1352 (c_unparser::visit_binary_expression): Improved handing of numeric
1353 constants when handling '%' and '/' operators.
1354 (c_tmpcounter::visit_print_format): Updated temporary handling.
1355 (c_unparser::visit_print_format): Removed the need for a result
1356 temporary when printing to a stream.
1357
53362f0e
DS
13582007-04-30 David Smith <dsmith@redhat.com>
1359
1360 PR 2339
1361 * translate.cxx (c_unparser_assignment::c_assignop): Improved
1362 handling of numeric constants in the rest of the assignment
1363 operators.
1364 (c_tmpcounter_assignment::c_assignop): Updated temporary
1365 handling.
c0b1a50a 1366
e872ae09
FCE
13672007-04-29 Frank Ch. Eigler <fche@elastic.org>
1368
1369 * configure.ac: Mention testsuite/configure.ac for version matching.
1370
522518f1
FCE
13712007-04-27 Frank Ch. Eigler <fche@elastic.org>
1372
1373 PR 4432.
1374 * buildrun.cxx (compile_pass): Tweak autoconf CFLAGS handling to
1375 avoid macro recursion but still get the needed -I directives.
1376 Add the inode-private autoconf test.
1377
ee6b2f59
FCE
13782007-04-26 Frank Ch. Eigler <fche@elastic.org>
1379
1380 PR 4432.
1381 * buildrun.cxx (compile_pass): Add $(mflags-y) to stap_check_build.
1382
29aeec07
FCE
13832007-04-26 Frank Ch. Eigler <fche@elastic.org>
1384
1385 * buildrun.cxx (compile_pass): Correct placement of commented-out
1386 "set -x" make-macro-debugging snippet.
1387
11b52b73
DS
13882007-04-25 David Smith <dsmith@redhat.com>
1389
1390 PR 2339
1391 * translate.cxx: Renamed "qname" to "value" throughout, since
1392 there are times now when qname would refer to a constant value.
1393 (tmpvar::override): Added function to allow for overriding a
1394 temporary variable name with a string.
1395 (tmpvar::value): New function that returns either the overridden
1396 string or the temporary variable name.
1397 (c_unparser::c_expression): New function.
1398 (c_unparser_assignment::c_assignop): Speed up assignment when
1399 numeric or string constants are used.
1400 (c_tmpcounter::visit_block): Avoid empty structs inside the union
1401 of temporary variables.
1402 (c_tmpcounter_assignment::prepare_rvalue): New function.
1403 (c_tmpcounter_assignment::c_assignop): New function.
1404 (c_tmpcounter_assignment::visit_symbol): Update temporary
1405 declarations.
1406 (c_unparser_assignment::prepare_rvalue): Speed up use of rvalues
1407 by using numeric and string constants directly instead of copying
1408 them to temporaries first.
1409 (c_tmpcounter::load_map_indices): New function.
1410 (c_unparser::load_map_indices): Speed up use of numeric and string
1411 constants as map indices.
1412 (c_tmpcounter::visit_arrayindex): Updated temporary declarations.
1413 (c_tmpcounter_assignment::visit_arrayindex): Updated temporary
1414 declarations.
1415 * translate.h (class translator_output): Added tellp() and seekp()
1416 functions.
1417
eb4cafc4
MM
14182007-04-24 Mike Mason <mmlnx@us.ibm.com>
1419
1420 * man/stapprobes.socket.5.in: Removed do_write and do_read probes,
c0b1a50a 1421 added aio_write, aio_read, writev and readv probes.
eb4cafc4 1422
551e9f14
DS
14232007-04-24 David Smith <dsmith@redhat.com>
1424
1425 * tapsets.cxx (common_probe_entryfn_epilogue): Increment
1426 error_count when overload processing kicks in.
1427
a50cc2c4
MH
14282007-04-24 Martin Hunt <hunt@redhat.com>
1429
1430 * stp_check.in: More tweaking of mount statement.
1431
5bc4ac10
FCE
14322007-04-23 Frank Ch. Eigler <fche@redhat.com>
1433
1434 * tapsets.cxx (die_entrypc): Expand search algorithm to
1435 check for "aranges", as sometimes occurs for inlined functions.
1436
f199cc9f
RM
14372007-04-20 Roland McGrath <roland@redhat.com>
1438
1439 * systemtap.spec.in (elfutils_version): Bump to 0.127.
1440
a3e695ac
FCE
14412007-04-18 Frank Ch. Eigler <fche@elastic.org>
1442
1443 * Makefile.am (install-elfutils): Use $INSTALL_PROGRAM to
1444 copy elfutils shared libraries, as suggested by Perry Cheng
1445 <perryche@us.ibm.com>.
1446
9e98eb72
FCE
14472007-04-18 Frank Ch. Eigler <fche@elastic.org>
1448
1449 * parse.cxx (scan_pp): Correct warnings from if/if/else nesting.
1450
3596cbca
MH
14512007-04-10 Martin Hunt <hunt@redhat.com>
1452
1453 * stp_check.in: Fixes to make sure debugfs or relayfs are mounted
1454 exactly where we expect and other mounts are ignored.
1455
5811366a
FCE
14562007-04-03 Pierre Peiffer <pierre.peiffer@bull.net>
1457
1458 * parse.cxx, parse.h (lexer::scan): Add $# and @# identifiers.
1459 (eval_pp_conditional, scan_pp): Allow the use of $x and @x identifiers.
1460 Produce more accurate error messages.
1461 * stap.1.in: Document $# and @# identifiers.
1462
3b579393
FCE
14632007-04-04 Frank Ch. Eigler <fche@elastic.org>
1464
1465 GCC 4.3 compatibility patches from Debian.
1466 * buildrun.cxx, hash.cxx, tapsets.cxx, translate.cxx: #include a few
1467 more C++ headers.
1468
cd7116b8
FCE
14692007-04-03 Frank Ch. Eigler <fche@elastic.org>
1470
1471 Improve error messages for underprivileged scripts.
1472 * parse.h (parse_error): Add skip_some member, true default.
1473 * parse.cxx (parse_embedded_code): Send false on missing -g.
1474 * parse.cxx (parser::parse): Respect flag during parse error
1475 recovery.
1476
0cbbf9d1
FCE
14772007-04-02 Frank Ch. Eigler <fche@redhat.com>
1478
1479 PR 3261.
1480 * tapsets.cxx (query_module): Reject elfutils module "kernel"
1481 unless kernel.* probe point used.
1482
396afcee
FCE
14832007-04-02 Frank Ch. Eigler <fche@elastic.org>
1484
1485 * tapsets.cxx (query_dwarf_func): Skip non-inlined functions
1486 for .function().inline case.
1487
b8da0ad1
FCE
14882007-03-30 Frank Ch. Eigler <fche@redhat.com>
1489
1490 PR 1570
1491 * NEWS: Document probe handler language change re. inline functions.
1492 * stapprobes.5.in: Likewise.
1493 * tapsets.cxx: Many changes to simplify caches and implement new
1494 handling of inline functions, removed of stubs for future probes.
1495 * elaborate.cxx (derived_probe printsig_nested): New function.
1496 * elaborate.h: Declare it.
1497 * main.cxx (usage): Clarify "-r" meaning.
1498 (main): Tweak related "-p 4" message.
1499
de1814dc
DS
15002007-03-30 David Smith <dsmith@redhat.com>
1501
3be43eac
DS
1502 PR 2341
1503 * translate.cxx (c_unparser::emit_locks): No longer emits a read
1504 lock for global variables that are only written to in begin/end
1505 probes.
1506 (c_unparser::emit_unlocks): Ditto.
1507 (translate_pass): Runs a varuse_collecting_visitor over probes
1508 that need global variable locks for use in
1509 emit_locks()/emit_unlocks().
1510
de1814dc
DS
1511 * stap.1.in: Corrected probe overload processing text.
1512
7e13f7a7
DS
15132007-03-29 David Smith <dsmith@redhat.com>
1514
1515 PR 3545
1516 * stap.1.in: Documented probe overload processing.
1517
c48cb0cc
FCE
15182007-03-29 Frank Ch. Eigler <fche@redhat.com>
1519
1520 * tapsets.cxx (dwarf_derived_probe emit_module_init): Correct handling
1521 of kprobe registration errors in the middle of a sequence.
1522
3b942fed
DS
15232007-03-29 David Smith <dsmith@redhat.com>
1524
1525 PR 4281
1526 * main.cxx (main): Validates '-m NAME' option. Chops off '.ko' if
1527 present. Makes sure name isn't empty. Makes sure name is only
1528 composed of characters [_a-zA-Z0-9].
1529
90f98cc3
DS
15302007-03-28 David Smith <dsmith@redhat.com>
1531
1532 PR 2341 (partial fix)
1533 * elaborate.h (struct derived_probe): Added needs_global_locks()
1534 member function. Unless overridden, will return true indicating
1535 that this probe needs locks around global variable references.
1536 * tapsets.cxx (struct be_derived_probe): Added override of default
1537 needs_global_locks() returning false. begin/end probes don't
1538 need locks around global variables, since they aren't run
1539 concurrently with any other probes.
1540 * translate.cxx (c_unparser::emit_common_header): Updated
1541 probe_contents logic to match the logic in emit_probe.
1542 (c_unparser::emit_probe): Added whether the probe needs global
1543 variable locks to the probe string (that helps eliminate duplicate
1544 probes). The generated C changes based on whether or not global
1545 variable locks are needed, but the pass 2 output doesn't differ
1546 between a probe that needs global variable locks and one that
1547 doesn't. If the probe doesn't need global variable locks, doesn't
1548 output them.
f199cc9f 1549
8438f752
FCE
15502007-03-26 Frank Ch. Eigler <fche@elastic.org>
1551
1552 * configure.ac: Bumped version to 0.5.14.
1553 * configure: Regenerated.
1554
022b623f
DS
15552007-03-26 David Smith <dsmith@redhat.com>
1556
8ac660ae
DS
1557 * tapsets.cxx (dwflpp::translate_final_fetch_or_store): Improved
1558 error messages for invalid types.
1559
022b623f
DS
1560 * elaborate.cxx (typeresolution_info::invalid): Improved the error
1561 message for invalid operators.
1562
37ebca01
FCE
15632007-03-22 Frank Ch. Eigler <fche@elastic.org>
1564
1565 PR 4224.
1566 * staptree.h (probe): Add privileged field.
1567 * elaborate.cxx, parse.cxx: Pass privileged flag to probes.
1568 * tapsets.cxx (dwarf_query): Add has_absolute field.
1569 (dwarf_derived_probe ctor): Tolerate it.
1570 (register_patterns): Expose it.
1571 (dwarf_builder::build): Implement it with no dwfl whatsoever.
1572 * NEWS: Document kernel.statement().absolute.
1573 * stapprobes.5.in: Ditto.
1574
2686f60a
WC
15752007-03-21 Will Cohen <wcohen@redhat.com>
1576
1577 * Makefile.am:
1578 * Makefile.in: Correct SAMPLE_SRC.
1579
29fdb4e4
DS
15802007-03-21 David Smith <dsmith@redhat.com>
1581
1582 PR 4146
1583 * tapsets.cxx (common_probe_entryfn_prologue): Added
1584 'interruptible' parameter. If a probe is interruptible,
1585 interrupts are not disabled while the probe executes. Preemption
1586 is disabled however. Interruptible parameter defaults to false.
1587 (common_probe_entryfn_epilogue): Ditto.
1588 (be_derived_probe_group::emit_module_decl): Uses new
1589 'interruptible' parameter to mark begin/end probes as
1590 interruptible.
1591 (probe_derived_probe_group::emit_module): Initialize
1592 'actionremaining' with MAXACTION instead of initializing
1593 'actioncount' with 0.
1594 * translate.cxx (emit_common_header): Renamed 'actioncount' to
1595 'actionremaining'. Turned logic around to initialize
1596 actionremaining to MAXACTION or MAXACTION_INTERRUPTIBLE then
1597 decrement it as actions occur.
1598 (translate_pass): Added MAXACTION_INTERRUPTIBLE initialization.
1599 * translate.h: Removed outdated comment portion.
1600 * stap.1.in: Documented MAXACTION_INTERRUPTIBLE.
1601 * NEWS: Added note about begin/end probes being run with
1602 interrupts enabled.
f199cc9f 1603
84048984
FCE
16042007-03-20 Frank Ch. Eigler <fche@elastic.org>
1605
1606 PR 4224.
1607 * tapsets.cxx (add_probe_point): Make kernel implicitly relocated
1608 relative to the _stext symbol.
1609 (dwarf_derived_probe ctor, emit_module_decls): Cooperate.
1610 (lookup_symbol_address): New function.
1611 (dwarf_builder::build): Call it thrice.
1612 (in_kprobes_function): Simplify.
1613 * session.h (systemtap_session): Rename cached symbol addresses.
1614 * translate.cxx, elaborate.cxx: Corresponding tweaks.
1615
ab655cf8
DS
16162007-03-19 David Smith <dsmith@redhat.com>
1617
1618 PR 4146 (partial fix)
1619 * tapsets.cxx (all_session_groups): Added note about stating that
1620 begin probes should be registered (actually run) first and end
1621 probes should be unregistered (run) last.
1622 * translate.cxx (c_unparser::emit_module_exit): Process probe
1623 group vector in reverse order so that probe groups will get
1624 unregistered in the reverse order that they were registered.
1625
255e4c68
FCE
16262007-03-19 Frank Ch. Eigler <fche@elastic.org>
1627
1628 * buildrun.cxx (compile_pass): Emit kbuild-time autoconf widgets
1629 to customize runtime or translator C code to actual kernel rather
1630 than kernel version string. Thanks to FC 2.6."20" for the nudge.
1631 * tapsets.cxx (hrtimer*emit_module): First client: HRTIMER_{MODE_}REL.
1632
3d48c983
FCE
16332007-03-17 Frank Ch. Eigler <fche@elastic.org>
1634
1635 * configure.ac: Tweak missing elfutils error message.
1636 * configure: Regenerated.
1637
a58d79d0
DS
16382007-03-16 David Smith <dsmith@redhat.com>
1639
1640 PR 3545.
1641 * tapsets.cxx (common_probe_entryfn_prologue): Added
1642 'overload_processing' parameter, which defaults to true. If
1643 overload_processing is set to false, doesn't output the
1644 STP_OVERLOAD code.
1645 (common_probe_entryfn_epilogue): Ditto.
1646 (be_derived_probe_group::emit_module_decl): Set
1647 overload_processing to false in calls to
1648 common_probe_entryfn_prologue and common_probe_entryfn_epilogue
1649 since begin/end probes shouldn't overload the system.
1650 * translate.cxx (c_unparser::emit_common_header): Emit
1651 STP_OVERLOAD global variables.
1652 (translate_pass): Emit STP_OVERLOAD defines.
1653
f199cc9f 16542007-03-14 Martin Hunt <hunt@redhat.com>
6dfd08d7
MH
1655 * main.cxx (usage): Remove "-M" and edit description
1656 of "-b".
5ba4863b 1657 * stap.1.in: Remove "-M" option and edit description of "-b".
6dfd08d7 1658 Edit description of "-o".
f199cc9f 1659
e65b03c1 16602007-03-14 Martin Hunt <hunt@redhat.com>
437040c3
MH
1661 * Makefile.am: Don't install old relayfs sources.
1662 * makefile.in: Rebuilt.
1663
5ba4863b 16642007-03-14 Martin Hunt <hunt@redhat.com>
f199cc9f 1665
e65b03c1
MH
1666 * Makefile.am (staprun_SOURCES): Sources now live in
1667 runtime/staprun.
1668 * makefile.in: Rebuilt.
1669
1670 * staprun.8.in: Updated.
1671
1672 * buildrun.cxx (run_pass): Use "-v" instead of not "-q" to
1673 be compatible with latest staprun.
f199cc9f 1674 * translate.cxx (emit_module_exit): Print warning using
e65b03c1
MH
1675 _stp_printf so it shows up at the end of all output.
1676 (translate_pass): Replace STP_RELAYFS with STP_BULKMODE.
1677 Eliminate STP_RELAYFS_MERGE.
f199cc9f 1678
5ba96b90
FCE
16792007-03-13 Frank Ch. Eigler <fche@redhat.com>
1680
1681 PR 4171.
1682 * Makefile.am (check, installcheck): Pass build-tree pointers
1683 in environment variables.
1684 * configure.ac: Run separate configury for testsuite/.
1685 * configure, Makefile.in: Regenerated.
1686
2302c47e
FCE
16872007-03-07 Frank Ch. Eigler <fche@elastic.org>
1688
1689 PR 4166.
1690 * tapsets.cxx (translate_components): Throw an exception rather
1691 then suffer an assertion failure for $ptr[index] expressions.
1692
c63a6b9d
DS
16932007-03-05 David Smith <dsmith@redhat.com>
1694
1695 * systemtap.spec.in: Made example perl script non-executable so
1696 that the systemtap rpm won't require perl.
1697
5b3452c9
FCE
16982007-03-04 Frank Ch. Eigler <fche@redhat.com>
1699
1700 * stap.1.in, stapex.5.in, staprun.8.in: Tweak text to remove
1701 authors credits, update examples and pointers.
1702
906cf40a
DS
17032007-02-28 David Smith <dsmith@redhat.com>
1704
1705 * systemtap.spec.in: Fixed %{_libexecdir}/systemtap path in
1706 systemtap-runtime %files section.
1707
dedfb024
FCE
17082007-02-27 Frank Ch. Eigler <fche@elastic.org>
1709
1710 * systemtap.spec.in (/var/cache/systemtap): Forget it.
1711 (stp_check): Pack this in with systemtap-runtime.
1712 * stp_check.in: Add LANG=C for speed.
1713
be168105
DS
17142007-02-27 David Smith <dsmith@redhat.com>
1715
1716 * staprun.8.in: Added a basic staprun man page.
1717 * Makefile.am: Added staprun.8.
1718 * Makefile.in: Regenerated.
1719 * configure.ac: Added staprun.8.
1720 * configure: Regenerated.
1721 * systemtap.spec.in: Added staprun.8 and other document files to
1722 staprun RPM.
1723 * .cvsignore: Ignores staprun.8.
1724
822a1ad1
FCE
17252007-02-27 Frank Ch. Eigler <fche@elastic.org>
1726
1727 * tapsets.cxx (dwflpp setup): Print "missing kernel debuginfo"
1728 message consistently for, er, missing kernel debuginfo.
07d2181f 1729 (dwarf_builder::build): Don't try to help.
822a1ad1
FCE
1730 (query_kernel_exists): Zapped.
1731
37b99e78
DS
17322007-02-27 David Smith <dsmith@redhat.com>
1733
1734 * systemtap.spec.in: Fedora Packaging Guidelines updates. Updated
1735 BuildRoot macro value to Fedora Extras standard value. No longer
1736 uses %makeinstall macro. The rpm now owns the
1737 /usr/libexec/systemtap directory.
1738
0f9f1507
DS
17392007-02-26 David Smith <dsmith@redhat.com>
1740
2a4b42eb
DS
1741 * Makefile.am: Removed 'update-examples' target. Moved
1742 functionality to systemtap.spec.in.
1743 * Makefile.in: Regenerated from Makefile.am.
1744 * systemtap.spec.in: Fixes paths in the example scripts directly.
9b2f2790 1745
0f9f1507
DS
1746 * Makefile.am: Added 'update-examples' target that fixes paths in
1747 the example code we ship in the rpm.
1748 * Makefile.in: Regenerated from Makefile.am.
1749 * systemtap.spec.in: Calls "make update-examples" target to fix
1750 the path to systemtap in the example scripts.
1751
aa30ccd3
FCE
17522007-02-25 Frank Ch. Eigler <fche@redhat.com>
1753
1754 * elaborate.h (match_node, derived_probe_builder): Add
1755 build_no_more member function.
1756 * elaborate.cxx (semantic_pass_symbols): Call it.
1757 * tapsets.cxx (dwarf_builder): Implement it by releasing dwflpp
1758 instance after pass 2, freeing mucho memory.
1759
5dbd55d7
JS
17602007-02-23 Josh Stone <joshua.i.stone@intel.com>
1761
1762 PR 4096
1763 * tapsets.cxx (hrtimer_derived_probe_group::emit_module_decls):
1764 Adapt the function signature for changes in 2.6.21.
1765 (hrtimer_derived_probe_group::emit_module_init): Fix the enum name
1766 for 2.6.21 as well.
1767
78f6bba6
FCE
17682007-02-19 Frank Ch. Eigler <fche@elastic.org>
1769
1770 PR 4078 and more, including patch from
1771 Eugeniy Meshcheryakov <eugen@debian.org>:
1772 * Makefile.am (AM_CXXFLAGS, AM_CFLAGS): Add -Wextra -Wall -Werror
1773 consistently.
1774 * Makefile.in: Regenerated.
1775 (*): Many minor warning fixes.
1776
133467ef
FCE
17772007-02-17 Frank Ch. Eigler <fche@elastic.org>
1778
1779 PR 4066.
1780 * translate.cxx (var::init): Check stat scalar initialization,
1781 just like is done for arrays.
1782 (emit_module_exit): Check unlikely but possible null timing stat.
1783
82e72903
DS
17842007-02-15 David Smith <dsmith@redhat.com>
1785
1786 PR 3625.
1787 * tapsets.cxx (dwflpp::print_locals): New function to print all
1788 the variables/parameters of a function.
1789 (dwflpp::find_variable_and_frame_base): Calls print_locals() when
1790 target variable can't be found.
1791 (dwflpp::print_members): New function to print all the members of
1792 a union/structure.
1793 (dwflpp::translate_components) Calls print_members() when
1794 union/structure member target variable reference can't be found.
1795
f41595cc
FCE
17962007-02-14 Frank Ch. Eigler <fche@elastic.org>
1797
1798 * tapsets.cxx (emit_module_decls): Assert CONFIG_KPROBES,
1799 as suggested by Andreas Kostyrka <andreas@kostyrka.org>.
1800
a9b2f3a5
FCE
18012007-02-12 Frank Ch. Eigler <fche@elastic.org>
1802
1803 * tapsets.cxx (query_statement): Tolerate null file name string.
1804
44f75386
FCE
18052007-02-09 Frank Ch. Eigler <fche@elastic.org>
1806
1807 PR 3965
1808 * configure.ac: Add --enable-prologue option.
1809 * configure, config.in: Regenerated.
1810 * session.h (prologue_searching): New field.
1811 * main.cxx (main): Parse new "-P" option. Initialize based on
1812 autoconf flag.
1813 * stap.1.in, NEWS: Document it.
1814 * hash.cxx (find_hash): Include it in computation.
1815 * tapsets.cxx (query_func_info, query_cu): Respect it.
1816
f902d959
FCE
18172007-02-06 Frank Ch. Eigler <fche@elastic.org>
1818
1819 * stapfuncs.5.in: Add docs for kernel_{long,int,short,char} and
1820 some user_string* variants.
1821
323b8364
MH
18222007-01-31 Martin Hunt <hunt@redhat.com>
1823
9b2f2790 1824 * translate.cxx (translate_pass): Remove old string impedance
323b8364 1825 mismatch stuff. Modify included files.
9b2f2790 1826
c06a9f9f
FCE
18272007-01-29 Frank Ch. Eigler <fche@elastic.org>
1828
1829 * configure.ac, configure: Bumped version to 0.5.13 for development.
1830
f38ca678
FCE
18312007-01-29 Frank Ch. Eigler <fche@elastic.org>
1832
e6a66a89
FCE
1833 * translate.cxx (emit_module_init): Add some more type casts to printk
1834 args.
f38ca678 1835
cbc32000
MH
18362007-01-29 Martin Hunt <hunt@redhat.com>
1837
1838 * translate.cxx (emit_module_init): BZ3888. Add memory usage for the
1839 runtime to the printk.
1840
9abec538
FCE
18412007-01-29 Frank Ch. Eigler <fche@elastic.org>
1842
e6a66a89
FCE
1843 * main.cxx (main): For successful last_pass=4, print compiled module
1844 name.
9abec538
FCE
1845 * cache.cxx (get_from_cache): Ditto.
1846
8fcef03c
MM
18472007-01-23 Mike Mason <mmlnx@us.ibm.com>
1848
1849 * Makefile.am, configure.ac: Add support for
1850 stapprobes.socket man page.
1851 * configure, Makefile.in: Regenerate.
1852 * man/stapprobes.socket.5.in: Socket tapset man page.
1853 * stapprobes.5.in: Add stapprobes.socket(5) to "See Also" section.
1854 * stapfuncs.5.in: Add new string and sockets functions.
1855
5ce20b7a
FCE
18562007-01-23 Frank Ch. Eigler <fche@elastic.org>
1857
1858 * tapsets.cxx (loc2c_error): Correct vasprintf ignored-rc warning.
1859
77d3caaf
MH
18602007-01-22 Martin Hunt <hunt@redhat.com>
1861
1862 * translate.cxx (mapvar::exists): Use new _stp_map_exists function.
1863 Testing for zero is no longer correct after changes from 2007-01-10
1864 below.
1865
5212330d
FCE
18662007-01-18 Frank Ch. Eigler <fche@elastic.org>
1867
1868 * main.cxx (version): Add (C) 2007.
1869 * translate.cxx (emit_module_init): Add a KERN_DEBUG printk
1870 at module startup time to aid debugging and auditing.
1871
46392da3
DS
18722007-01-12 David Smith <dsmith@redhat.com>
1873
1874 * tapsets.cxx
1875 (dwarf_var_expanding_copy_visitor::visit_target_symbol): Since
1876 array behavior has changed (setting to 0 no longer deletes the
1877 array element), we delete the internal counter array element when
1878 providing target variable access in return probes.
1879
63e5cc16
RM
18802007-01-11 Roland McGrath <roland@redhat.com>
1881
1882 * systemtap.spec.in (elfutils_version): Bump to 0.125.
1883 Older libdw's have known bugs, though the ABI has not changed.
1884
e7ae4442
MH
18852007-01-10 Martin Hunt <hunt@redhat.com>
1886
1887 * translate.cxx (mapvar::del): Call the new _stp_map_del
1888 function instead of setting to zero.
1889
7ad9d4f5
FCE
18902007-01-01 Frank Ch. Eigler <fche@redhat.com>
1891
1892 * configure.ac: Bump version to 0.5.12 for release.
1893 * configure: Regenerated.
1894 * NEWS, AUTHORS: Populate & repopulate.
7ad9d4f5 1895
6f313a73
FCE
18962006-12-29 Frank Ch. Eigler <fche@elastic.org>
1897
1898 * tapsets.cxx (*group:emit_module_init): flush stdout less for timing
1899 mode. Also, Set probe_point variable ...
1900 * translate.cxx (emit_module_init): ... so on registration failure, a
1901 usable error message can be generated.
1902
dbb68664
FCE
19032006-12-29 Frank Ch. Eigler <fche@redhat.com>
1904
1905 PR 3523.
1906 * tapsets.cxx (common_probe_entryfn_prologue,epilogue): Restore
1907 support for -t (benchmarking) mode.
1908 * translate.cxx (emit_common_header,emit_module_init):Ditto.
1909 (emit_module_exit,emit_probe): Ditto, with most meat here.
63e5cc16 1910
d950d08e
JS
19112006-12-22 Josh Stone <joshua.i.stone@intel.com>
1912
1913 * stap.1.in: Document how to specify the size of global arrays.
1914
ef474d24
JS
19152006-12-21 Josh Stone <joshua.i.stone@intel.com>
1916
1917 PR 3671
1918 * parse.cxx (parser::parse_global): Allow a maxsize on global arrays.
1919 * staptree.h (struct vardecl): Add the maxsize field.
1920 * staptree.cxx (vardecl::vardecl): Init. maxsize.
1921 (vardecl::set_arity): Don't allow arity 0 when there's a maxsize.
1922 (vardecl::compatible_arity): Ditto.
1923 (vardecl::print): Include maxsize in output.
1924 (target_symbol::print): Ditto.
1925 * translate.cxx (struct mapvar, mapvar::mapvar): Add maxsize.
1926 (mapvar::init): Init maps with the given maxsize if specified, else
1927 keep using MAXMAPENTRIES.
1928 (mapvar::set): Make the error message give the maxsize.
1929 (mapvar::add): Ditto, and check for overflow on pmap add.
1930 (c_unparser::getmap): Pass the maxsize from the vardecl to mapvar.
1931
9c66f4e0
DS
19322006-12-21 David Smith <dsmith@redhat.com>
1933
1934 * hash.cxx (find_hash): Added two more options into the hash that
1935 change the generated C file - '-M' (merge) and '-t' (benchmark
1936 timing).
1937
94cfa802
DS
19382006-12-20 David Smith <dsmith@redhat.com>
1939
1940 PR 3519.
1941 * Makefile.am: Added 'examples' directory to the 'EXTRA_DIST'
1942 variable so that the examples directory will be added to the
1943 distribution directory. Added variables 'SAMPLE_DEST_DIR' and
1944 'SAMPLE_SRC' and target 'dist-add-samples' to copy some of the
1945 testsuite sample scripts to the examples directory when creating a
1946 distribution directory.
1947 * Makefile.in: Regenerated.
1948 * systemtap.spec.in: Added 'examples' directory to the %doc list
1949 so that the examples directory will be installed on a user's
1950 system.
1951
7e41d3dc
FCE
19522006-12-19 Frank Ch. Eigler <fche@redhat.com>
1953
1954 PR 3522.
1955 * tapsets.cxx (dwflpp::emit_address): Call
1956 _stp_module_relocate only once per session.
1957
1958 Error message cleanup: duplicate elimination etc.
1959 * session.h (saved_errors): Store a set of 'em.
1960 (num_errors): Return set size. Remove old numeric field.
1961 Update all callers.
1962 * elaborate.cxx (systemtap_session::print_errors):
1963 Print each encountered message just once.
1964 * staptree (semantic_error): Make msg2 writeable.
1965 Add a chain field.
1966 * tapsets.cxx (*var_expanding*:visit_target_symbol): Set saved
1967 semantic_error's chain field.
1968 * elaborate.cxx (register_library_aliases, visit_foreach_loop,
1969 visit_functioncall, derive_probes): Plop "while: ..." error
1970 message prefix/suffix right into the semantic_error message string.
1971 * parse.cxx (lexer::scan): Identify erroneous token better
1972 in error message for unresolvable $N/@M command line args.
1973 * util.h (lex_cast_hex): Use std::hex, not std::ios::hex.
1974
d10e79e8
DS
19752006-12-18 David Smith <dsmith@redhat.com>
1976
1977 * Makefile.am (EXTRA_DIST): Added header files - cache.h, hash.h,
1978 mdfour.h, and util.h.
1979 * Makefile.in: Regenerated.
1980
72d18b98
FCE
19812006-12-16 Frank Ch. Eigler <fche@elastic.org>
1982
1983 * main.cxx (main): Print version strings if verbose >=2 .
1984 * tapsets.cxx (common_probe_entryfn_prologue): Decorate an
1985 emitted local with __restrict__.
1986
cd5b28b2
DS
19872006-12-14 David Smith <dsmith@redhat.com>
1988
1989 * tapsets.cxx (struct dwarf_var_expanding_copy_visitor): Added
1990 'return_ts_map' member variable.
1991 (dwarf_var_expanding_copy_visitor::visit_target_symbol):
1992 Optimization. If we've already seen this target variable in this
1993 return probe, return the last replacement (instead of creating a
1994 new replacement).
1995
8fc05e57
DS
19962006-12-13 David Smith <dsmith@redhat.com>
1997
1998 * tapsets.cxx (struct dwarf_var_expanding_copy_visitor): Added
1999 'add_probe' member variable. Initialized it in ctor.
2000 (dwarf_var_expanding_copy_visitor::visit_target_symbol):
2001 Optimization. Instead of generating one entry probe per target
2002 variable accessed in a return probe, now just generates one entry
2003 probe for all target variables accessed in a particular return
2004 probe. It does this by creating a new probe in the new
2005 'add_probe' member variable.
b31ac24e
DS
2006 (dwarf_derived_probe::dwarf_derived_probe): If add_probe isn't
2007 NULL, make sure it gets derived later.
8fc05e57 2008
79e6d33f
JS
20092006-12-11 Josh Stone <joshua.i.stone@intel.com>
2010
2011 * parse.cxx (parse::parse_literal): Enforce the lower bound on
2012 negative literals.
2013
0672c112
DS
20142006-12-11 David Smith <dsmith@redhat.com>
2015
2016 * hash.cxx (find_hash): Fixed a caching bug. Bulk mode (relayfs)
2017 status should be figured into the hash since it changes the
2018 generated C code.
2019
9ba8c134
JS
20202006-12-08 Josh Stone <joshua.i.stone@intel.com>
2021
2022 PR 3681.
2023 * staptree.h (struct vardecl): Add a literal 'init' member for the
2024 initialization value of globals.
2025 * staptree.cxx (vardecl::vardecl): Initialize 'init' to NULL.
2026 (vardecl::print): Print global init value during pass-1 output.
2027 * main.cxx (printscript): Print global init values during verbose
2028 pass-2 output.
2029 * parse.cxx (parser::parse_global): Set the initialization literal of
2030 global vardecls.
2031 * translate.cxx (var::init): Don't unconditionally override the value
2032 of numeric globals when the module_param isn't used.
2033 (c_unparser::emit_global_param): Write numeric module_params directly
2034 into the global variable, as an int64_t instead of long.
2035 (c_unparser::emit_global): Add initialization to global declarations.
2036 Don't create a temp module_param long for numeric globals anymore.
2037
16e8f21f
JS
20382006-12-07 Josh Stone <joshua.i.stone@intel.com>
2039
2040 PR 3624.
2041 * tapsets.cxx (struct be_derived_probe): Add a new priority parameter
2042 for begin/end probes, and a comparison function for sorting.
2043 (be_builder::build): Parse the priority & pass it to be_derived_probe.
2044 (be_derived_probe_group::emit_module_init, emit_module_exit): Sort the
2045 probe list by priority before emitting any code.
2046 (register_standard_tapsets): Add new begin/end variants.
2047 * parse.cxx (parser::parse_literal): Allow negative numeric literals,
2048 by checking for a '-' unary operator right before a number.
6a256b03 2049 * stapprobes.5.in: Document the new begin/end syntax.
16e8f21f 2050
e0d86324
JS
20512006-12-06 Josh Stone <joshua.i.stone@intel.com>
2052
2053 PR 3623.
2054 * tapsets.cxx (timer_derived_probe_group::emit_module_decls): Restart
2055 the timers if we are in STARTING or RUNNING state.
2056 (hrtimer_derived_probe_group::emit_module_decls): Ditto.
2057 (be_derived_probe_group::emit_module_init): indicate error to the rest
2058 of the initialization if any begin probes fail.
2059 * translate.cxx (c_unparser::emit_module_init): Set the global error
2060 state on an initialization error so timers know to shut down.
2061
129be0ac
FCE
20622006-12-05 Frank Ch. Eigler <fche@redhat.com>
2063
2064 PR 3648.
2065 * main.cxx (main): Tweak error message for tapset script execution.
2066 Also catch those clever rogues who use stdin.
2067
d05a1d00
FCE
20682006-11-30 Frank Ch. Eigler <fche@elastic.org>
2069
2070 * tapsets.cxx (common_probe_entryfn_prologue): Tweak
2071 insufficient stack detection logic.
2072
83d7fcdc
DS
20732006-11-30 David Smith <dsmith@redhat.com>
2074
2075 * main.cxx (printscript): Prints global embedded code. Not
2076 printing the global embedded code was causing bad caching
2077 behavior.
2078
8c819921
DS
20792006-11-29 David Smith <dsmith@redhat.com>
2080
2081 * tapsets.cxx (struct dwarf_var_expanding_copy_visitor): Added
2082 'add_block' member variable. Constructor sets it to NULL.
2083 (dwarf_var_expanding_copy_visitor::visit_target_symbol): Fixes the
2084 problem of accessing a cached target variable in a loop. Cached
2085 target variable is assigned to a temporary variable, which can be
2086 safely access multiple times. In addition, the cached value is
2087 deleted after being read.
2088 (dwarf_derived_probe::dwarf_derived_probe): Adds in the new block
2089 of code created in visit_target_symbol() to the beginning of the
2090 derived probe.
63e5cc16 2091
5e600bd6
DS
20922006-11-28 David Smith <dsmith@redhat.com>
2093
2094 * tapsets.cxx
2095 (dwarf_var_expanding_copy_visitor::visit_target_symbol):
2096 Improved handling target variables in return probes by having a
2097 per-thread counter.
2098
c931ec8a
FCE
20992006-11-26 Frank Ch. Eigler <fche@redhat.com>
2100
2101 PRs 2685, 3596, toward 2725.
2102 * tapsets.cxx (common_probe_entryfn_prologue): Skip probe on
2103 insufficient stack.
2104 (build_blacklist): Add a slew of lock-related calls.
2105 (query_module): Check for debuginfo architecture match.
2106 * translate.cxx (translate_pass): Add default MINSTACKSPACE.
2107 * configure.ac: Link stap with -lebl too.
2108 * configure: Regenerated.
2109 * stap.1.in: Document MINSTACKSPACE parameter.
2110
90ce056f
FCE
21112006-11-21 Frank Ch. Eigler <fche@elastic.org>
2112
2113 * translate.cxx (emit_module_init): Adapt to 2.6.19 utsname().
2114
3cb8cba0
FCE
21152006-11-21 Frank Ch. Eigler <fche@elastic.org>
2116
2117 PR 3556.
2118 * translate.cxx (emit_module_init): Emit code to check
2119 system_utsname against translate-time version/machine strings.
2120
85ecf79a
DS
21212006-11-20 David Smith <dsmith@redhat.com>
2122
2123 * tapsets.cxx
2124 (dwarf_var_expanding_copy_visitor::visit_target_symbol): BZ
2125 1382. Target variables can be accessed in return probes. A new
2126 function entry probe is generated that saves the target variables
2127 so that they can be accesssed in the return probe.
2128
f59e98c4
FCE
21292006-11-19 Frank Ch. Eigler <fche@elastic.org>
2130
2131 * main.cxx (main): Signal parse error if a tapset script
2132 is given as the user script.
2133
21342006-11-15 Frank Ch. Eigler <fche@redhat.com>
9f36b77f
FCE
2135
2136 * tapsets.cxx (d_v_e_c_v::visit_target_symbol): Restore lost
2137 exception-saving functionality that improves error messages
2138 for incorrect $target expressions.
2139 (translate_components): Systematize error messages somewhat.
2140 * translate.cxx (emit_function, emit_probe): Clarify
2141 "array locals" error message.
2142
cf2a1f85
DS
21432006-11-10 David Smith <dsmith@redhat.com>
2144
2145 * tapsets.cxx
2146 (dwarf_var_expanding_copy_visitor::visit_target_symbol): Minor
2147 improvement to error handling by throwing exceptions before
2148 allocations are done.
2149
3d23b162
FCE
21502006-11-10 Frank Ch. Eigler <fche@elastic.org>
2151
2152 * stap.1.in: On urging of Adam Jackson, add blurbs on array syntax
2153 and default limits.
2154
5566993b 21552006-11-09 Martin Hunt <hunt@redhat.com>
3d23b162 2156
32847987 2157 * Makefile.am (staprun_LDADD): Need PROCFLAGS here too.
63e5cc16
RM
2158
21592006-11-09 Martin Hunt <hunt@redhat.com>
3d23b162 2160
5566993b 2161 * Makefile.am (staprun_CFLAGS): New. Use PROCFLAGS.
32847987 2162
63e5cc16 2163 * configure.ac: Add PROCFLAGS. Processor-dependent
5566993b
MH
2164 compilation flags.
2165 * configure: Rebuilt.
2166 * Makefile.in: Rebuilt.
63e5cc16 2167
c9bad430
DS
21682006-11-09 David Smith <dsmith@redhat.com>
2169
2170 * tapsets.cxx (dwarf_query::dwarf_query): Looks for "maxactive"
2171 return probe variant.
2172 (dwarf_derived_probe::dwarf_derived_probe): Initializes
2173 has_maxactive and maxactive_val member variables.
2174 (dwarf_derived_probe::register_function_variants): Matches
2175 "maxactive" return probe variant.
2176 (dwarf_derived_probe_group::emit_module_decls): Emits code to use
2177 maxactive data.
2178 (dwarf_derived_probe_group::emit_module_init): Ditto.
2179
d1b3549d
DS
21802006-11-08 David Smith <dsmith@redhat.com>
2181
2182 * cache.cxx (get_from_cache): To preserve semantics with
2183 non-cached use, if the last pass is 3, display the cached C
2184 source.
2185
c4bb5be2
FCE
21862006-11-08 Frank Ch. Eigler <fche@elastic.org>
2187
2188 * staptree.cxx (print_format::components_to_string): Quote ".
2189 (c_unparser::visit_print_format): Don't use lex_cast_qstring
2190 as it overdoes \ quoting. Resemble ::visit_literal_string
2191 instead.
2192
72dbc915
FCE
21932006-11-08 Frank Ch. Eigler <fche@elastic.org>
2194
2195 * util.h (lex_cast_qstring): Move def'n here. Also quote \.
2196 (stringify, lex_cast, lex_cast_hex): Move defn here.
2197 * buildrun.cxx, elaborate.cxx, main.cxx, staptree.cxx: Adapt.
2198
29b0069b
FCE
21992006-11-07 Frank Ch. Eigler <fche@elastic.org>
2200
2201 * tapsets.cxx (profile_derived_probe_group::emit_module_decls):
2202 Pass along incoming pt_regs to context of timer.profile handlers.
2203
3a02f9bf
MH
22042006-11-06 Martin Hunt <hunt@redhat.com>
2205
2206 * translate.cxx (var::init): Check for errors when
2207 allocating arrays of stats, as well as other arrays.
2208
27f21e8c
DS
22092006-11-06 David Smith <dsmith@redhat.com>
2210
2211 Added "limit EXP" support to foreach statements.
2212 * translate.cxx (c_tmpcounter::visit_foreach_loop): Handles
2213 "limit" member variable.
2214 (c_unparser::visit_foreach_loop): Ditto.
2215 * staptree.cxx (foreach_loop::print): Prints "limit EXP"
2216 addition.
2217 (traversing_visitor::visit_foreach_loop): Handles "limit" member
2218 variable.
2219 (deep_copy_visitor::visit_foreach_loop): Ditto.
2220 * staptree.h (struct foreach_loop): Added "limit" member
2221 variable.
2222 * stap.1.in: Added documentation for the "limit EXP" addition to
2223 foreach statement.
2224 * parse.cxx (lexer::scan): Added "limit" keyword for foreach
2225 statements.
2226 (parser::parse_foreach_loop): Parses "limit" keyword for foreach
2227 statements.
2228 * elaborate.cxx (symresolution_info::visit_foreach_loop): Handles
2229 "limit" member variable.
2230 (typeresolution_info::visit_foreach_loop): Ditto.
2231
e664cf5b
FCE
22322006-11-03 Frank Ch. Eigler <fche@elastic.org>
2233
2234 * tapsets.cxx (emit_address): Emit calls to _stp_module_relocate
2235 for $target-variable addresses in relocatable sections.
2236
f1bad60c
MH
22372006-11-02 Martin Hunt <hunt@redhat.com>
2238
63e5cc16 2239 * session.h (struct systemtap_session): Add symtab. This controls
f1bad60c
MH
2240 if a symbol table is generated and compiled into the module.
2241
63e5cc16 2242 * main.cxx (main): Set session.symtab to false. This could later
f1bad60c 2243 enabled by a command-line option if necessary.
63e5cc16 2244
f1bad60c
MH
2245 * translate.cxx (emit_symbol_data): Don't write a symbol table if
2246 session.symtab is false.
2247
2248 * tapsets.cxx (emit_module_decls): Remove stap_module array and
2249 module_relocate.
2250 (emit_module_init): Use "_stp_module_relocate".
2251
2252 * Makefile.am (staprun_SOURCES): Add symbols.c
2253 * Makefile.in: Rebuilt.
2254
ea3f75ae
DS
22552006-11-02 David Smith <dsmith@redhat.com>
2256
2257 * main.cxx (main): Added '-r' check. If the user changes the
2258 kernel release to compile against, make sure pass 5 isn't
2259 performed (since the resulting module won't be installable).
2260
4b2c4ab5
FCE
22612006-11-02 Frank Ch. Eigler <fche@elastic.org>
2262
2263 * Makefile.am: Install tapset/README too.
2264 * Makefile.in: Regenerated.
2265
d006ef4f
JS
22662006-11-01 Josh Stone <joshua.i.stone@intel.com>
2267
63e5cc16 2268 * tapsets.cxx (timer_derived_probe_group::emit_interval): New -
d006ef4f
JS
2269 Fixes randomization for jiffies timers in ms mode.
2270 (timer_derived_probe_group::emit_module_decls): Use emit_interval.
2271 (timer_derived_probe_group::emit_module_init): Ditto.
2272
ea3f75ae 22732006-11-01 David Smith <dsmith@redhat.com>
ed238a16
DS
2274
2275 * translate.cxx (delete_statement_operand_visitor::visit_symbol):
2276 Added referent assert.
2277 (delete_statement_operand_tmp_visitor::visit_arrayindex): Ditto.
2278 (c_tmpcounter::visit_array_in): Ditto.
2279 (c_unparser::visit_symbol): Ditto.
2280 (c_unparser_assignment::visit_symbol): Ditto.
2281 (c_unparser::load_map_indices): Ditto.
2282 (c_tmpcounter::visit_arrayindex): Ditto.
2283 (c_tmpcounter_assignment::visit_arrayindex): Ditto.
2284 (c_tmpcounter::visit_functioncall): Ditto.
2285 (c_unparser::visit_functioncall): Ditto.
2286
b20febf3
FCE
22872006-10-31 Frank Ch. Eigler <fche@redhat.com>
2288
2289 Probe registration rework. Offline dwarf processing for better
2290 cross-instrumentation.
2291 * elaborate.h (derived_probe): Remove registration-related code
2292 generation API. Add new function sole_location().
2293 (derived_probe_group): Reworked this and associated classes.
2294 * session.h (systemntap_session): Create individual per-category
2295 derived_probe_groups.
2296 * elaborate.cxx (derived_probe_group): Reworked.
2297 (alias_derived_probe): Switch to new derived_probe API.
2298 (semantic_pass_symbols): Ditto.
2299 * translate.cxx (mapvar init): Check for array initialization error.
2300 (emit_module_init): Handle such failures, at least in theory.
2301 (emit_module_exit): Switch to new derived_probe_group API. Call
2302 cpu_relax() during shutdown busywait.
2303 (emit_common_header): Elide context variables for elided handler fns.
2304 (c_unparser::emit_probe): Implement new, improved duplicate
2305 elimination technique for probe handlers. Leave two older ones
2306 behind as compile options for education.
2307 * tapsets.cxx (*): Reworked all probe registration code, moving
2308 it from derived_probes into derived_probe_groups. Shrunk output
2309 code. Temporarily disabled probe timing and perfmon/mark probes.
2310 (dwflpp): Use offline reporting, so that module matching and
2311 relocation is performed at run time.
2312 (dwarf_query): Remove flavour logic, now supplanted by other
2313 duplicate elimination code.
2314 (dwarf_derived_probe): Reworked construction, centralized
2315 module/section/offset computations.
2316 * tapsets.h (all_session_groups): New little helper.
2317
2318 * main.cxx (main): For pass-2 message, print number of embeds too.
2319 * systemtap.spec.in: Add a "BuildRequires: dejagnu" for make check.
2320 * configure.ac: Bump version to 0.5.11.
2321 * configure: Regenerated.
2322
9be994ea 23232006-10-23 Li Guanglei <guanglei@cn.ibm.com>
b20febf3 2324
9be994ea
LG
2325 * lket.5.in: Rearranged the sections, add more details.
2326
26bf5812
DS
23272006-10-30 David Smith <dsmith@redhat.com>
2328
2329 * stap.1.in: Added notes about new caching feature.
2330
d390ce2f
DS
23312006-10-24 David Smith <dsmith@redhat.com>
2332
2333 * tapsets.cxx (build_blacklist): Added
2334 "atomic_notifier_call_chain" to the blacklist (Bugzilla #3379).
2335
1b78aef5
DS
23362006-10-23 David Smith <dsmith@redhat.com>
2337
2338 * main.cxx (printscript): New function containing code moved from
2339 main().
2340 (main): Added code to create cache directory, call function to
2341 generate hash, and see if we can use cached source/module. If
2342 pass 4 is actually run to produce a new module, we call
2343 add_to_cache() to cache the result.
2344 * session.h (struct systemtap_session): Added hash/cache session
2345 data.
2346 * cache.cxx: New file handling adding/getting files from the
2347 cache.
2348 * cache.h: New header file for cache.cxx.
2349 * hash.cxx: New file containing C++ wrapper for routines in
2350 mdfour.c and the find_hash function which computes the hash file
2351 name for an input script.
2352 * hash.h: New header file for hash.cxx.
2353 * mdfour.c: New file containing MD4 hash code.
2354 * mdfour.h: New header file for mdfour.c.
2355 * util.cxx: New file containing several utility functions used by
2356 the caching code.
2357 * util.h: New header file for util.cxx.
2358 * Makefile.am: Added new C/C++ files.
2359 * Makefile.in: Regenerated.
2360
89db89af 23612006-10-23 Li Guanglei <guanglei@cn.ibm.com>
9b2f2790 2362
89db89af
LG
2363 * configure.ac, Makefile.am: add lket-b2a.1.in
2364 * Makefile.in, configure: regenreated
2365 * ket-b2a.1.in: new man page for lket-b2a
2366 * lket.5.in: document signal trace hooks
2367
0b951e7c
RM
23682006-10-18 Roland McGrath <roland@redhat.com>
2369
2370 PR 2727
2371 * configure.ac (elfutils build): Pass --prefix and --exec-prefix
2372 options to elfutils configure.
2373 (elfutils_abs_srcdir): New substituted variable.
2374 * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable.
2375 * configure, config.in, Makefile.in: Regenerated.
2376
99ac04e8 23772006-10-16 Li Guanglei <guanglei@cn.ibm.com>
0b951e7c 2378
99ac04e8
LG
2379 * configure.ac: add the checking for mysql_config,
2380 mysqlclient library and header files
2381 * runtime/lket/b2a/Makefile.am: set compile flags
2382 according to the existance of mysql_config
2383 * Makefile.in, configure, testsuite/Makefile.in,
2384 runtime/lket/b2a/Makefile.in: regenerated
2385
fcff848e
MH
23862006-10-12 Martin Hunt <hunt@redhat.com>
2387
0b951e7c 2388 * translate.cxx (emit_common_header): Add a
fcff848e
MH
2389 kretprobe_instance pointer to struct context.
2390 (emit_symbol_data): Include absolute symbols.
2391
2392 * tapsets.cxx (emit_common_header): Initialize
2393 the kprobe instance pointer to 0;
2394 (emit_probe_entries): Set kretprobe instance
2395 pointer if appropriate.
2396
2397
1d3a40b6
DS
23982006-10-11 David Smith <dsmith@redhat.com>
2399
2400 * tapsets.cxx (in_kprobes_function): New function that looks up
2401 the values of '__kprobes_text_start' and '__kprobes_text_end' in
2402 the kernel to be able to automatically exclude functions marked as
2403 '__kprobes' (BZ# 2639).
2404 (blacklisted_p): Calls in_kprobes_function().
2405 (query_kernel_module): Utility function that finds the kernel module.
2406 * session.h (struct systemtap_session): Added kprobes_text
2407 variables - kprobes_text_initialized, kprobes_text_start, and
2408 kprobes_text_end.
2409 * elaborate.cxx (systemtap_session::systemtap_session):
2410 kprobes_text variables get initialized.
2411
5f560517
RM
24122006-10-10 Roland McGrath <roland@redhat.com>
2413
2414 * systemtap.spec.in (elfutils_version): Require 0.124 now.
2415
da641cd3
FCE
24162006-10-10 Frank Ch. Eigler <fche@elastic.org>
2417
2418 * configure.ac: Override incomplete mysql checking for now.
2419 * configure: Regenerated.
2420
69e4bcd9
LG
24212006-10-10 Li Guanglei <guanglei@cn.ibm.com>
2422
2423 * configure.ac: add the checking of mysql client library
2424 * Makefile.in, configure: regenerated
5f560517 2425
214d3eca
LG
24262006-09-29 Li Guanglei <guanglei@cn.ibm.com>
2427
2428 * man: newly created dir for stapprobes
2429 * man/stapprobes.iosched.5, man/stapprobes.netdev.5, man/stapprobes.nfs.5,
2430 man/stapprobes.nfsd.5, man/stapprobes.pagefault.5, man/stapprobes.process.5,
2431 man/stapprobes.rpc.5, man/stapprobes.scsi.5, man/stapprobes.signal.5,
2432 man/stapprobes.tcp.5, man/stapprobes.udp.5: Some of these man pages are from
2433 the old stapprobes.5.in. Some are newly created(rpc, nfs, nfsd)
2434 * man/.cvsignore: ignore the generated man page files
5f560517 2435
6bc51533
LG
24362006-09-29 Li Guanglei <guanglei@cn.ibm.com>
2437
2438 PR 3282
2439 * Makefile.am: add -DPKGLIBDIR='"$(pkglibexecdir)"' to AM_CPPFLAGS
2440
39014506
JS
24412006-09-28 Josh Stone <joshua.i.stone@intel.com>
2442
2443 PR 3278
2444 * tapsets.cxx (hrtimer_derived_probe::emit_probe_entries): Only
2445 restart timers when the session is still active and we updated the
2446 expire time.
2447
197a4d62
JS
24482006-09-27 Josh Stone <joshua.i.stone@intel.com>
2449
2450 * session.h (struct systemtap_session): Add kernel_base_release
2451 to store the kernel version without the -NNN suffix.
2452 * main.cxx (main): Generate and use kernel_base_release.
2453 * parse.cxx (eval_pp_conditional): Use kernel_base_release.
2454 * tapsets.cxx (profile_derived_probe::profile_derived_probe):
2455 Use kernel_base_release.
2456
2457 * tapsets.cxx (timer_builder::build): Support a wide variety of
2458 timer varients -- jiffies, s/sec, ms/msec, us/usec, ns/nsec, and
2459 hz. Use hrtimers automatically on kernels that have it.
2460 (timer_builder::register_patterns): Bind all of the new timer
2461 varients in one easy place.
2462 (register_standard_tapsets): Call timer_builder::register_patterns.
2463 (struct hrtimer_builder): Removed since timer_builder is generic.
2464 * stapprobes.5.in: Document new timer.* functionality.
2465
2466 * tapsets.cxx (hrtimer_derived_probe_group::emit_probes): Add a
2467 shared global for the actual hrtimer resolution, _stp_hrtimer_res.
2468 (hrtimer_derived_probe_group::emit_module): Init _stp_hrtimer_res.
2469 (hrtimer_derived_probe::emit_interval): Limit intervals at a
2470 minimum to the hrtimer's actual resolution.
2471 (hrtimer_derived_probe::emit_probe_entries): Forward timers
2472 based on previous expiration instead of restarting relative.
2473
a63a95dc
DS
24742006-09-26 David Smith <dsmith@redhat.com>
2475
2476 * .cvsignore: Changed 'stpd' reference to 'staprun'.
2477 * INTERNALS: Ditto.
2478 * buildrun.cxx (run_pass): Ditto.
2479 * lket.5.in: Ditto.
2480 * stap.1.in: Ditto.
2481 * stapruncs.5.in: Ditto.
2482 * examples/small_demos/demo_script.txt: Ditto.
2483 * examples/small_demos/sys.stp: Ditto.
5f560517 2484
a63a95dc
DS
2485 * systemtap.spec.in: Created a new subpackage,
2486 "systemtap-runtime", that contains staprun.
2487
2488 * Makefile.am: Renamed 'stpd' to 'staprun' and moved it to
2489 $(bindir).
2490 * Makefile.in: Regenerated from Makefile.am.
2491
2492 * configure.ac: Incremented version number.
2493 * configure: Regenerated from configure.ac.
2494
cb35348c 24952006-09-22 Tom Zanussi <zanussi@us.ibm.com>
5f560517 2496
cb35348c 2497 * stp_check.in: Add debugfs mounting.
5f560517 2498
fcecfdf8
LG
24992006-09-22 Li Guanglei <guanglei@cn.ibm.com>
2500
2501 From Gui Jian <guijian@cn.ibm.com>
2502 * lket.5.in: document RPC trace hooks
2503
faaa0db7
JS
25042006-09-20 Josh Stone <joshua.i.stone@intel.com>
2505
2506 PR 3233
2507 * stapfuncs.5.in: Document new gettimeofday_ns.
2508
18c785ee 25092006-09-19 Tom Zanussi <zanussi@us.ibm.com>
5f560517 2510
18c785ee 2511 * README: Add CONFIG_DEBUG_FS to config options.
5f560517 2512
7455c074
JS
25132006-09-18 Josh Stone <joshua.i.stone@intel.com>
2514
2515 PR 3219
2516 From Eugeniy Meshcheryakov <eugen@debian.org>:
2517 * stapprobes.5.in: Correct misuse of '-' -> '\-' in manpage
2518
1cb28d09
MH
25192006-09-18 Martin Hunt <hunt@redhat.com>
2520
2521 * buildrun.cxx (run_pass): Remove "-m" option to stpd.
2522 * translate.cxx (translate_pass): #define STP_RELAYFS_MERGE
2523 if appropriate.
5f560517 2524
f0a917e2
MH
25252006-09-13 Martin Hunt <hunt@redhat.com>
2526
2527 * buildrun.cxx (run_pass): Remove "-r" option to stpd.
2528
ae966e5f
WC
25292006-09-13 Will Cohen <wcohen@redhat.com>
2530
2531 * tapsets.cxx (perfmon_derived_probe_group::emit_module_init):
2532 Do not throw sematic error unless probes actually used.
5f560517 2533
c8cb3b60
WC
25342006-09-12 Will Cohen <wcohen@redhat.com>
2535
2536 PR 909
906b75a6
WC
2537 * configure.ac: Add perfmon support options.
2538 * configure: Regenerated.
c8cb3b60
WC
2539
2540 * stapfuncs.5.in:
2541 * stapprobes.5.in: Document the perfmon support.
2542
2543 * session.h, main.cxx: Track number of perfmon probes.
2544 * translate.cxx: Gen STP_PERFMON when perfmon probes.
2545
2546 * elaborate.h:
2547 * elaborate.cxx (derived_probe_group): Add register_probe() for
2548 perfmon probe.
2549
2550 * tapsets.cxx (derived_probe::emit_common_header): Gen perfmon data.
2551 (perfmon_var_expanding_copy_visitor): New struct.
2552 (struct perfmon_derived_probe):
2553 (struct perfmon_derived_probe_group):
2554 (struct perfmon_builder): New Perfmon probe handling structures.
2555 (register_standard_tapsets): Add perfmon tapset binding.
5f560517 2556 (derived_probe_group_container):
c8cb3b60
WC
2557 (~derived_probe_group_container):
2558 (derived_probe_group_container::register_probe):
2559 (derived_probe_group_container::emit_probes):
2560 (derived_probe_group_container::emit_module_init):
2561 (derived_probe_group_container::emit_module_init_call):
2562 (derived_probe_group_container::emit_module_exit): Add perfmon tapset.
2563
2564 * tapset/perfmon.stp: New.
2565 * runtime/perf.c: New.
2566 * runtime/perf.h: New.
2567 * runtime/runtime.h: Include perf.c.
2568
2569 * testsuite/buildok/perfmon01.stp: Test to exercise perfmon
2570 probes.
5f560517 2571 * testsuite/systemtap.pass1-4/buildok.exp:
c8cb3b60 2572
4a6a7951
LG
25732006-09-12 Li Guanglei <guanglei@cn.ibm.com>
2574
2575 From Li Xuepeng <xuepengl@cn.ibm.com>
2576 * lket.5.in: document nfs trace hooks
2577
46b84a80
DS
25782006-09-08 David Smith <dsmith@redhat.com>
2579
2580 * elaborate.h (struct derived_probe): Replace emit_registrations()
2581 function with emit_registrations_start() and
2582 emit_registrations_end().
2583 (struct derived_probe_group): Added emit_module_init().
2584 (struct derived_probe_group_container): Added emit_module_init(),
2585 emit_module_init_call(), and emit_module_exit().
2586 * elaborate.cxx (struct alias_derived_probe): Updated
2587 emit_regitrations calls.
2588 * translate.cxx (emit_module_init): Instead of actually emitting
2589 per-probe-point registrations/unregistrations, let the session's
2590 derived_probe_group_container do it.
2591 * tapsets.cxx (emit_probe_timing): New function that handles
2592 probe timing code.
2593 (be_derived_probe::emit_registrations_start): Renamed from
2594 emit_registrations.
2595 (be_derived_probe_group::emit_module_init): New function that
2596 outputs probes create and destroy functions.
2597 (dwarf_derived_probe::emit_registrations): Removed, but most code
2598 moved to emit_registrations_start().
2599 (dwarf_derived_probe::emit_registrations_start): Handles details
2600 of multiple dwarf probe registrations.
2601 (dwarf_derived_probe::emit_registrations_end): Handles cleanup
2602 details of multiple dwarf probe registrations.
2603 (dwarf_derived_probe_group::emit_module_init): New function that
2604 outputs probes create and destroy functions.
2605 (timer_derived_probe::emit_registrations_start): Renamed from
2606 emit_registrations. Added mutiple probe handling.
2607 (timer_derived_probe::emit_registrations_end): Handles cleanup
2608 details of multiple probe registrations.
2609 (timer_derived_probe_group::emit_module_init): New function that
2610 outputs probes create and destroy functions.
2611 (profile_derived_probe::emit_registrations_start): Renamed from
2612 emit_registrations. Added mutiple probe handling.
2613 (profile_derived_probe::emit_registrations_end): Handles cleanup
2614 details of multiple probe registrations.
2615 (profile_derived_probe_group::emit_module_init): New function that
2616 outputs probes create and destroy functions.
2617 (mark_derived_probe::emit_registrations_start): Renamed from
2618 emit_registrations. Added mutiple probe handling.
2619 (mark_derived_probe::emit_registrations_end): Handles cleanup
2620 details of multiple probe registrations.
2621 (mark_derived_probe_group::emit_module_init): New function that
2622 outputs probes create and destroy functions.
2623 (hrtimer_derived_probe::emit_registrations_start): Renamed from
2624 emit_registrations. Added mutiple probe handling.
2625 (hrtimer_derived_probe::emit_registrations_end): Dummy function.
2626 (hrtimer_derived_probe_group::emit_module_init): New function that
2627 outputs probes create and destroy functions.
2628 (derived_probe_group_container::emit_module_init): Added function
2629 to call all probe group's emit_module_int functions.
2630 (derived_probe_group_container::emit_module_init_call): Added
2631 function to handle probe group initialization cleanup.
2632 (derived_probe_group_container::emit_module_exit): Added
2633 function to handle probe group cleanup.
5f560517 2634
46b84a80 2635
4b5f3e45
FCE
26362006-09-06 Frank Ch. Eigler <fche@elastic.org>
2637
2638 Add basic support for initialized globals.
2639 * parse.cxx (parse_global): Parse initialization clause, implement
2640 by rewriting to "probe begin { var = value }".
2641 * parse.h: Corresponding changes.
2642 * stap.1.in: Document optional initialization.
2643
9b48ce88
FCE
26442006-09-04 Frank Ch. Eigler <fche@elastic.org>
2645
2646 Improve unresolved target-symbol error messages.
2647 * staptree.h (target_symbol): Add new field saved_conversion_error.
2648 * elaborate.cxx (typeresolution_info::visit_target_symbol): Throw
2649 that if found instead of generic error.
2650 * tapsets.cxx (t_v_f_c_v::visit_target_symbol): Set it.
2651
331edd21
LG
26522006-08-30 Li Guanglei <guanglei@cn.ibm.com>
2653
2654 * stapprobes.5.in: document signal.*
2655
dc38c0ae
DS
26562006-08-28 David Smith <dsmith@redhat.com>
2657
2658 * translate.cxx: Added inclusion of session.h.
2659 (translate_pass): Instead of asking each probe to emit itself, we
2660 ask the session's probes member variable to emit all the probes.
2661 * tapsets.cxx: Added inclusion of session.h. Added a
2662 register_probe member function to all derived_probe based
2663 classes. Added a derived_probe_group derived class for all probe
2664 types:
2665 (be_derived_probe_group): New class.
2666 (never_derived_probe_group): New class.
2667 (dwarf_derived_probe_group): New class.
2668 (timer_derived_probe_group): New class.
2669 (profile_derived_probe_group): New class.
2670 (mark_derived_probe_group): New class.
2671 (hrtimer_derived_probe_group): New class
2672 (derived_probe_group_container): New class.
2673 * elaborate.h: Removed inclusion of session.h since session.h now
2674 includes elaborate.h.
2675 (derived_probe): Added register_probe member function.
2676 (derived_probe_group): Added class definition. This is the base
2677 class of all of the derived probe groups - dwarf, timer, etc.
2678 (derived_probe_group_container): Added class definition. An
2679 instance of this class will be stored in the session and contain
2680 all the other probe groups.
2681 * elaborate.cxx (derived_probe_group::register_probe): Added
2682 derived_probe_group::register_probe stubs.
2683 (alias_derived_probe::register_probe): Added register_probe member
2684 function.
2685 (semantic_pass_symbols): After deriving a probe, the probes now
2686 register themselves with the session.
2687 * session.h: Includes elaborate.h to get
2688 derived_probe_group_container definition. systemtap_session class
2689 'probes' member variable switched from a vector of derived probes
2690 to a derived_probe_group_container.
2691 * buildrun.cxx: Added inclusion of session.h since it was removed
2692 from elaborate.h.
2693 * main.cxx: Added inclusion of session.h since it was removed
2694 from elaborate.h.
2695 * parse.h: Added forward struct declarations.
2696 * staptree.h: Removed inclusion of session.h.
5f560517 2697
c72dc86c
JS
26982006-08-23 Josh Stone <joshua.i.stone@intel.com>
2699
2700 PR 3093
2701 From Eugeniy Meshcheryakov <eugen@debian.org>:
2702 * main.cxx (main): Use setenv instead of putenv, since gcc 4.2
2703 doesn't like assigning string constants to char*. Also use
2704 const char* for result from getenv.
2705 * tapsets.cxx (dwflpp::setup): Copy string constant into a
2706 local array, to fix gcc 4.2 warning.
2707
13d2ecdb
JS
27082006-08-22 Josh Stone <joshua.i.stone@intel.com>
2709
2710 PR 3094
2711 From Eugeniy Meshcheryakov <eugen@debian.org>:
2712 * stap.1.in: In groff, '-' produces a Unicode hyphen. Use '\-'
2713 where a plain-old minus sign is desired, e.g., code examples.
2714 * lket.5.in, stapex.5.in, stapfuncs.5.in, stapprobes.5.in: ditto
2715
b054fb0b
RM
27162006-08-15 Roland McGrath <roland@redhat.com>
2717
2718 * systemtap.spec.in (elfutils_version): Require 0.123 now.
2719
c214bd6a
DS
27202006-08-14 David Smith <dsmith@redhat.com>
2721
2722 * elaborate.cxx (semantic_pass): Calls semantic_pass_optimize1()
2723 and semantic_pass_optimize2().
2724 (visit_functioncall): Removed setting relaxed_p since
2725 semantic_pass_opt5 does it.
2726 (semantic_pass_opt5): Goes ahead and removes duplicate functions
2727 since semantic_pass_opt1() won't be run again.
2728 (semantic_pass_optimize1): Renamed from semantic_pass_optimize().
2729 Moved semantic_pass_opt5() to semantic_pass_optimize2().
2730 (semantic_pass_optimize2): New function that contains optimization
2731 passes that need to be done after type inference.
2732
2752649c
FCE
27332006-08-12 Frank Ch. Eigler <fche@elastic.org>
2734
2735 * Makefile.am (dist-hook): Make "make dist" dist.
2736 * Makefile.in: Regenerated.
2737
814bc89d
FCE
27382006-08-12 Frank Ch. Eigler <fche@elastic.org>
2739
2740 * configure.ac, Makefile.am: Descend into testsuite/
2741 directory. Remove local test logic.
2742 * configure, Makefile.in: Regenerated.
2743 * runtest.sh: Not yet removed.
2744 * HACKING: Update for new testsuite layout.
2745
88bbd60d
DS
27462006-08-10 David Smith <dsmith@redhat.com>
2747
2748 * elaborate.cxx (duplicate_function_remover): Added class.
2749 (get_functionsig): Added function.
2750 (semantic_pass_opt5): New function merges duplicate identical
2751 functions into one function.
2752 (semantic_pass_optimize): Calls semantic_pass_opt5.
2753
2754 * translate.cxx (c_unparser::emit_probe): Changed to merge
2755 duplicate probes bodies by making the duplicate probe just call
2756 the original probe (BZ# 2421).
2757
408acea1 27582006-08-08 Li Guanglei <guanglei@cn.ibm.com>
814bc89d 2759
408acea1
LG
2760 * stapprobes.5.in: document process.*, tcp.*, udp.*
2761
026379fb
TN
27622006-08-09 Thang Nguyen <thang.p.nguyen@intel.com>
2763
2764 * testsuite/buildok/iolock_test.stp: Updated for new ioblock.stp
2765
e7a14b9a
JS
27662006-08-09 Josh Stone <joshua.i.stone@intel.com>
2767
2768 * examples/small_demos/proc_snoop.stp,
2769 testsuite/buildok/process_test.stp: Rename process.signal_* to
2770 new signal.* tapset.
ccd0c53f
JS
2771 * stapprobes.5.in, testsuite/buildok/memory.stp: move pagefault
2772 to vm.* namespace
e7a14b9a 2773
81d2346b
ET
27742006-08-08 Eugene Teo <eteo@redhat.com>
2775
2776 * tapset/context.stp (probemod): New function.
2777 * stapfuncs.5.in: Document it.
2778 * testsuite/buildok/probemod.stp: Test it.
b054fb0b 2779
516a45bf 27802006-08-08 Li Guanglei <guanglei@cn.ibm.com>
9b2f2790 2781
516a45bf
LG
2782 * stapprobes.5.in: document scsi.*, ioscheduler.*, netdev.* and
2783 pagefault.
b054fb0b 2784
8d695876 27852006-08-01 Li Guanglei <guanglei@cn.ibm.com>
9b2f2790 2786
8d695876
LG
2787 PR 2422
2788 * tapsets.cxx: calling get_module_dwarf(false) to give a
2789 warning to those modules without debuginfo and skip them
b054fb0b 2790
d65d6b27
RM
27912006-07-19 Roland McGrath <roland@redhat.com>
2792
2793 * configure.ac, systemtap.spec.in: Bump version to 0.5.9.
2794 * configure: Regenerated.
2795
8be33d65
RM
2796 * systemtap.spec.in: Fix syntax in last change.
2797
a9a80c9b
DS
27982006-07-19 David Smith <dsmith@redhat.com>
2799
2800 * testsuite/buildok/scsi.stp: Only run the scsi test if the scsi
2801 kernel subsystem is running.
2802
3a09fba9
DS
28032006-07-17 David Smith <dsmith@redhat.com>
2804
2805 * stapfuncs.5.in: Removed retval function description, since it
2806 has been removed.
2807
ce02d866
RM
28082006-07-17 Roland McGrath <roland@redhat.com>
2809
2810 * configure.ac, systemtap.spec.in: Require elfutils-0.122.
2811 * configure: Regenerated.
2812
2813 * systemtap.spec.in (Release): Use %{?dist}.
2814
ec819dc3
LG
28152006-07-17 Li Guanglei <guanglei@cn.ibm.com>
2816
ce02d866 2817 * main.cxx: add LKET's tapsets into stap's default tapsets
ec819dc3
LG
2818 search path
2819
87e914aa
FCE
28202006-07-13 Frank Ch. Eigler <fche@elastic.org>
2821
0eabebdb 2822 * systemtap.spec.in: Add formerly missing admonitional verb.
87e914aa 2823
493ee224
DS
28242006-07-13 David Smith <dsmith@redhat.com>
2825
2826 * parse.cxx (parser::expect_unknown2): New function that looks for
2827 2 possible token types.
2828 * parse.cxx (parser::expect_ident_or_keyword): New function that
2829 calls parser::expect_unknown2.
2830 * parse.cxx (parser::parse_symbol): Calls
2831 parser::expect_ident_or_keyword to allow keywords to appear when
2832 expanding target symbols (Bugzilla #2913).
2833 * parse.h: Added prototypes for parser::expect_unknown2 and
2834 parser::expect_ident_or_keyword.
2835 * testsuite/parseok/seventeen.stp: New test to check for allowing
2836 keywords when expanding target symbols.
2837
a68f81a2
JS
28382006-06-30 Josh Stone <joshua.i.stone@intel.com>
2839
2840 * tapsets.cxx (hrtimer_builder::build): Enable hrtimers on >=2.6.17.
2841 * tapsets.cxx (hrtimer_derived_probe::emit_probe_entries): Correct
2842 compilation errors, fix return value.
2843
b40af7ee
DS
28442006-06-30 David Smith <dsmith@redhat.com>
2845
2846 * tapsets.cxx (dwflpp::dwfl_assert): Added optional extra_msg
2847 parameter to be able to print out extra error message.
2848 (dwflpp::setup): Uses new 'extra_msg' parameter to dwfl_assert()
2849 to ask user to install kernel-debuginfo when
2850 dwfl_linux_kernel_report_kernel() or
2851 dwfl_linux_kernel_report_modules() fails (Bugzilla #2669).
ce02d866 2852
b40af7ee
DS
2853 * buildrun.cxx (compile_pass): Checks to make sure module build
2854 directory exists before trying to run make there (Bugzilla #2669).
2855
7be90969
RM
28562006-06-27 Roland McGrath <roland@redhat.com>
2857
2858 * runtest.sh: Don't use eval, use proper quoting.
2859
2860 * tapsets.cxx (dwflpp::emit_address): New instance method. Get
2861 relocation details from Dwfl to emit in comment after address constant.
2862 (dwflpp::loc2c_emit_address): Just call that.
2863
1f901031
LG
28642006-06-26 Li Guanglei <guanglei@cn.ibm.com>
2865
2866 * lket.in.5: update to AIO event hooks
7be90969 2867
83640d23
TN
28682006-06-23 Thang P Nguyen <thang.p.nguyen@intel.com>
2869
2870 * testsuite/buildok/tcp_test.stp: updated inet calls
7be90969 2871 * testsuite/buildok/udp_test.stp: test udp tapset
83640d23 2872
de24f2f2
TN
28732006-06-22 Thang P Nguyen <thang.p.nguyen@intel.com>
2874
2875 * testsuite/buildok/tcp_test.stp: test tcp tapset
2876
a250197b
RM
28772006-06-16 Roland McGrath <roland@redhat.com>
2878
2879 * configure.ac, systemtap.spec.in: Bump version to 0.5.8.
2880 * configure: Regenerated.
2881
4dc01567
RM
2882 * systemtap.spec.in: Fix bundled_elfutils setting so builds can
2883 possibly work. Add comment admonishing losers not to touch it.
2884
a250197b
RM
2885 * aclocal.m4, Makefile.in: Regenerated with automake-1.9.6-2.
2886
31db14c4
LG
28872006-06-16 Li Guanglei <guanglei@cn.ibm.com>
2888
2889 * lket.in.5: update to reflect the latest changes
2890 to LKET
bfdc9c09 2891
9ed152b8
RM
28922006-06-15 Roland McGrath <roland@redhat.com>
2893
2894 * systemtap.spec.in: Require elfutils-0.121.
2895
203a3d5b
FCE
28962006-06-14 Frank Ch. Eigler <fche@elastic.org>
2897
2898 * README: Add kernel.org blurb based on text from
2899 Chuck Ebbert <76306.1226@compuserve.com>.
2900
82e6bf4b
LG
29012006-06-09 Li Guanglei <guanglei@cn.ibm.com>
2902
2903 * parse.cxx, staptree.cxx, staptree.h, translate.cxx:
2904 delete lket_trace_extra
2905 * lket.5.in: delete the description of backtrace in
2906 LKET
2907
628a07f1
TN
29082006-06-08 Thang P Nguyen <thang.p.nguyen@intel.com>
2909
9ed152b8 2910 * testsuite/buildok/ioblock_test.stp: test ioblock
628a07f1 2911
e19fda4e
DS
29122006-06-05 David Smith <dsmith@redhat.com>
2913
2914 * tapsets.cxx (dwflpp::express_as_string): New function.
2915 Extracted from dwflpp::literal_stmt_for_local() so that
2916 dwflpp::literal_stmt_for_return() could also call it.
2917 (dwflpp::literal_stmt_for_local): Portion extracted to create
2918 dwflpp::express_as_string().
2919 (dwflpp::literal_stmt_for_return): New function. Adds support for
2920 new symbolic access ("$return") to return value in .return
2921 probes. Fixes PR 1132.
2922 (target_variable_flavour_calculating_visitor::visit_target_symbol):
2923 Calls dwflpp::literal_stmt_for_return() when in a return probe and
2924 the variable name is "$return".
2925 (dwarf_var_expanding_copy_visitor::visit_target_symbol): Ditto.
2926 * stapfuncs.5.in: Noted that the retval() function is deprecated.
2927 * stapprobes.5.in: Corrected the name of the return value
2928 variable.
2929 * tapset/return.stp: Marked the retval() function as deprecated.
2930 * testsuite/semko/return01.stp: Added new test.
2931 * testsuite/semko/return02.stp: Ditto.
2932
a971b891
FCE
29332006-06-05 Frank Ch. Eigler <fche@elastic.org>
2934
2935 PR 2645 cont'd.
2936 * elaborate.cxx (derive_probes): Pass down optional flag
2937 from alias reference to expansion.
2938 * testsuite/semok/twentytwo.stp: Test passing-down.
2939 * stapprobes.5.in: Specify passing-down property of optional flag.
2940
cedd10f4
FCE
29412006-06-02 Frank Ch. Eigler <fche@elastic.org>
2942
2943 PR 2645 cont'd.
2944 * elaborate.cxx (find_and_build): Support optional wildcards too.
2945 (derive_probes): Change last argument to indicate optionalness of
2946 parent probe point (alias reference).
2947 (alias_expansion_builder): Shrink epilogue-mode alias body copying.
9ed152b8 2948 Pass along alias reference optionality.
cedd10f4
FCE
2949 * elaborate.h: Corresponding changes.
2950 * testsuite/semko/thirtyfive.stp, semok/twentytwo.stp: New tests.
2951
b6b2628a
JS
29522006-06-02 Josh Stone <joshua.i.stone@intel.com>
2953
2954 * testsuite/buildok/process_test.stp: add signal_handle test
2955 * examples/small_demos/proc_snoop.stp: log signal_handle
2956
6e3347a9
FCE
29572006-06-02 Frank Ch. Eigler <fche@elastic.org>
2958
2959 PR 2645.
2960 * stapprobes.5.in: Document "?" probe point suffix.
2961 * parse.cxx (parse_probe_point): Recognize "?" optional suffix.
2962 * elaborate.cxx (derive_probes): Observe probe_point->optional.
2963 * staptree.h, staptree.cxx: Corresponding changes.
2964 * tapsets.cxx (never_derived_probe, never_builder): New classes.
2965 (register_standard_tapsets): Support "never" probe point.
2966 * testsuite/buildok/six.stp, parseok/five.stp: Modifed tests.
2967
2968 * translate.cxx (emit_module_init): Format "-t" (benchmarking)
2969 cycle-time reports similarly to "-v" (verbose) times.
2970
277c1957
DS
29712006-06-02 David Smith <dsmith@redhat.com>
2972
988b2234
DS
2973 * .cvsignore: Added more files to ignore.
2974
277c1957
DS
2975 * main.cxx (usage): Added exitcode parameter.
2976 (main): Improved a few error messages. Also, when an error is
2977 given, stap now always exits with a status of 1.
2978
2979 * testsuite/buildok/cmdline01.stp: New test.
2980 * testsuite/parseko/cmdline01.stp: Ditto.
2981 * testsuite/parseko/cmdline02.stp: Ditto.
2982 * testsuite/parseko/cmdline03.stp: Ditto.
2983 * testsuite/parseko/cmdline04.stp: Ditto.
2984 * testsuite/parseko/cmdline05.stp: Ditto.
2985 * testsuite/parseko/cmdline06.stp: Ditto.
2986 * testsuite/parseok/cmdline01.stp: Ditto.
2987 * testsuite/parseok/cmdline02.stp: Ditto.
2988
ffb0b3ad
JS
29892006-06-01 Josh Stone <joshua.i.stone@intel.com>
2990
2991 * tapsets.cxx (hrtimer_derived_probe::emit_interval): update
2992 API usage of hrtimers in preparation of getting exports from
2993 the kernel.
2994 (hrtimer_derived_probe::emit_probe_entries): ditto
2995
01133ccb
LG
29962006-06-01 Li Guanglei <guanglei@cn.ibm.com>
2997
2998 * parse.cxx, staptree.cxx, staptree.h, translate.cxx:
2999 add new function lket_trace_extra at script level
3000 * lket.5.in: Modified the description of backtrace in
3001 LKET
3002
78db65bd
LG
30032006-05-29 Li Guanglei <guanglei@cn.ibm.com>
3004
3005 * systemtap.spec.in: include lket-b2a in the rpm package
01133ccb 3006
1fbcfde6
LG
30072006-05-27 Li Guanglei <guanglei@cn.ibm.com>
3008
3009 * configure.ac: add conditional build of lket-b2a
3010 if glib2-devel is not found, just skips and gives
3011 a warning
3012 * Makefile.am: add conditional build of lket-b2a
3013 * Makefile.in, configure: regenerated
3014 * runtime/lket/b2a/Makefile: deleted. Should be
3015 generated by configure
3016
0daad364
JS
30172006-05-26 Josh Stone <joshua.i.stone@intel.com>
3018
3019 * tapsets.cxx (build_blacklist): build the sets of blacklisted
3020 functions and function returns. Manually added many __kprobes
3021 functions that should not be probed.
3022 (dwarf_query::dwarf_query): Call build_blacklist.
3023 (dwarf_query::blacklisted_p): Use blacklist sets.
3024
70c743d8
JS
30252006-05-25 Josh Stone <joshua.i.stone@intel.com>
3026
3027 * parse.cxx (parser::scan_pp): Free memory for tokens that are
3028 thrown away in the preprocessing stage.
1cde5ba5
JS
3029 * tapsets.cxx
3030 (dwarf_var_expanding_copy_visitor::visit_target_symbol):
3031 Free allocated memory when supressing target-variable errors
70c743d8 3032
037c3a77
DS
30332006-05-25 David Smith <dsmith@redhat.com>
3034
3035 * testsuite/semok/twentyone.stp: New file.
3036
a44a0785
FCE
30372006-05-24 Frank Ch. Eigler <fche@elastic.org>
3038
3039 Pass 4 speedup.
3040 * tapsets.cxx (derived_probe::emit_common_header): New
3041 function, to emit code formerly inlined by
3042 emit_probe_prologue/epilogue.
3043 * translate.cxx (emit_common_header): Call it.
3044 * elaborate.h: Corresponding changes.
3045
a477f3f1
DS
30462006-05-24 David Smith <dsmith@redhat.com>
3047
3048 * elaborate.cxx (isglob): New function.
3049 (match_key::globmatch): New function.
3050 (match_node::find_and_build): Uses isglob() and
3051 match_key::globmatch() to provide support for wildcards such as
3052 "kernel.syscall.*read*" (Bugzilla #1928).
3053 * elaborate.h (match_key::globmatch): Added function declaration.
3054 * parse.cxx (parser::parse_probe_point): Collects one or more
3055 tokens into a single probe-point functor string.
3056
3057 * testsuite/parseko/twentytwo.stp: New file.
3058 * testsuite/parseok/sixteen.stp: New file.
3059
35713425
DS
30602006-05-24 David Smith <dsmith@redhat.com>
3061
3062 * testsuite/parseko/cmdlinearg01.stp: New file.
3063 * testsuite/parseko/cmdlinearg02.stp: New file.
3064 * testsuite/parseko/eighteen.stp: New file.
3065 * testsuite/parseko/foreachstmt01.stp: New file.
3066 * testsuite/parseko/foreachstmt02.stp: New file.
3067 * testsuite/parseko/foreachstmt03.stp: New file.
3068 * testsuite/parseko/foreachstmt04.stp: New file.
3069 * testsuite/parseko/foreachstmt05.stp: New file.
3070 * testsuite/parseko/forstmt01.stp: New file.
3071 * testsuite/parseko/forstmt02.stp: New file.
3072 * testsuite/parseko/forstmt03.stp: New file.
3073 * testsuite/parseko/forstmt04.stp: New file.
3074 * testsuite/parseko/functiondecl01.stp: New file.
3075 * testsuite/parseko/functiondecl02.stp: New file.
3076 * testsuite/parseko/functiondecl03.stp: New file.
3077 * testsuite/parseko/functiondecl04.stp: New file.
3078 * testsuite/parseko/functiondecl05.stp: New file.
3079 * testsuite/parseko/functiondecl06.stp: New file.
3080 * testsuite/parseko/functiondecl07.stp: New file.
3081 * testsuite/parseko/ifstmt01.stp: New file.
3082 * testsuite/parseko/ifstmt02.stp: New file.
3083 * testsuite/parseko/nineteen.stp: New file.
3084 * testsuite/parseko/preprocess01.stp: New file.
3085 * testsuite/parseko/preprocess02.stp: New file.
3086 * testsuite/parseko/preprocess03.stp: New file.
3087 * testsuite/parseko/preprocess04.stp: New file.
3088 * testsuite/parseko/preprocess05.stp: New file.
3089 * testsuite/parseko/preprocess06.stp: New file.
3090 * testsuite/parseko/preprocess07.stp: New file.
3091 * testsuite/parseko/preprocess08.stp: New file.
3092 * testsuite/parseko/preprocess09.stp: New file.
3093 * testsuite/parseko/probepoint01.stp: New file.
3094 * testsuite/parseko/probepoint02.stp: New file.
3095 * testsuite/parseko/probepoint03.stp: New file.
3096 * testsuite/parseko/seventeen.stp: New file.
3097 * testsuite/parseko/ternarystmt01.stp: New file.
3098 * testsuite/parseko/twenty.stp: New file.
3099 * testsuite/parseko/twentyone.stp: New file.
3100 * testsuite/parseko/whilestmt01.stp: New file.
3101 * testsuite/parseko/whilestmt02.stp: New file.
3102
8129fd92
LG
31032006-05-24 Li Guanglei <guanglei@cn.ibm.com>
3104
3105 * configure.ac: add lket.5 & runtime/lket/b2a
3106 * Makefile.am: add lket & runtime/lket/b2a
3107 * aclocal.m4, Makefile.in, configure: regenerated
9ed152b8 3108 * runtime/lket/b2a/*: a binary to ascii converter used
8129fd92
LG
3109 to convert LKET's default binary trace data.
3110 * lket.5.in: add intro of lket-b2a converter.
3111
c958a431
DS
31122006-05-23 David Smith <dsmith@redhat.com>
3113
3114 * parse.cxx (parse_for_loop): Corrected error message.
3115
828c3ed5
DS
31162006-05-22 David Smith <dsmith@redhat.com>
3117
3118 * elaborate.cxx (find_and_build): Fixed issue #2643. Wildcard
3119 code was being too optimistic.
3120
267333e0 31212006-05-22 Li Guanglei <guanglei@cn.ibm.com>
bfdc9c09 3122
267333e0
LG
3123 * lket.in.5: draft version of manpage for LKET
3124 * Makefile.in, configure, stap.1.in: add lket.in.5
3125
c1d5f3f6
FCE
31262006-05-18 Frank Ch. Eigler <fche@elastic.org>
3127
3128 Organize "-t" output by script/parse level probes rather than
3129 derived-probes.
3130 * elaborate.cxx (derived_probe ctor): Remove name field setting.
3131 (alias_derived_probe): New class.
3132 (alias_expandion_builder::build): Create an instance of the above
3133 instead of parse-tree-level plain probe.
3134 * elaborate.h: Corresponding changes.
3135 (derived_probe::basest): Define.
3136 * staptree.cxx (probe ctor): Set new name field.
3137 * staptree.h (probe): Corresponding changes.
3138 (probe::basest): New field.
3139 * tapsets.cxx (emit_probe_prologue, emit_probe_entries):
3140 Switch to basest() probe name for Stat instance.
3141 (dwarf_derived_probe ctor): Stash away base probe.
3142 * translate.cxx (unparser::emit_probe): Remove index
3143 operand, just use probe name to generate symbols.
3144 (emit_module_init): Reorganize -t output in unregister functions.
3145 (translate_pass): Remove unparser::current_probenum field and all
3146 uses.
9ed152b8 3147 * translate.h: Corresponding changes.
c1d5f3f6 3148
267333e0
LG
31492006-05-18 Li Guanglei <guanglei@cn.ibm.com>
3150
3151 * tapset/LKET/*: tracing tapsets of LKET
3152 * tapset/context.stp: add stp_pid() func
3153 * tapset/ppc64/syscalls.stp: add conditional preprocessing
3154 since sys64_time is removed from kernel >= 2.6.16
3155
e55fe027
LG
31562006-05-18 Li Guanglei <guanglei@cn.ibm.com>
3157
3158 * tapset/tskschedule.stp: deleted, merge into scheduler.stp
3159 * tapset/scheduler.stp: incorporate tskschedule.stp
9ed152b8 3160 * testsuite/buildok/tskschedule.stp: deleted, merge into
e55fe027
LG
3161 sched_test.stp
3162 * testsuite/buildok/sched_test.stp: incorporate tskschedule.stp
3163
1617d766
JS
31642006-05-17 Josh Stone <joshua.i.stone@intel.com>
3165
3166 * testsuite/buildok/sched_test.stp: test scheduler tapset
3167 * examples/small_demos/sched_snoop.stp: demo scheduler tapset
3168
d4c79004
LG
31692006-05-18 Li Guanglei <guanglei@cn.ibm.com>
3170
3171 * testsuite/buildok/ioscheduler.stp: testcase for ioscheduler.stp
3172 * testsuite/buildok/memory.stp: testcase for memory.stp
3173 * testsuite/buildok/networking.stp: testcase for networking.stp
3174 * testsuite/buildok/scsi.stp: testcase for scsi.stp
3175 * testsuite/buildok/tskschedule.stp: testcase for tskschedule.stp
3176
f8e6042e
LG
31772006-05-18 Li Guanglei <guanglei@cn.ibm.com>
3178
3179 * tapset/ioscheduler.stp: generic IO scheduler tapsets from LKET
7456f468
LG
3180 * tapset/memory.stp: generic pagefault tapsets from LKET
3181 * tapset/networking.stp: generic networking tapsets from LKET
f8e6042e
LG
3182 * tapset/scsi.stp: generic scsi tapsets from LKET
3183 * tapset/tskschedule.stp: generic task scheduler tapsets from LKET
3184 * tapset/process.stp: changes to process.exec alias
9ed152b8 3185
6e213f58
DS
31862006-05-16 David Smith <dsmith@redhat.com>
3187
3188 * parse.cxx (parser::parser): Added initializer for 'context'
3189 member variable.
3190 (tt2str): Added support for new tok_keyword type.
3191 (operator <<): Ignores keyword content when outputting error
3192 message.
3193 (lexer::scan): Recognizes keywords, such as 'probe', 'global',
3194 'function', etc. and classifies them as type 'tok_keyword'. This
3195 causes keywords to become reserved so they cannot be used for
3196 function names, variable names, etc.
3197 (parser::parse): Changed tok_identifier to tok_keyword when looking
3198 for "probe", "global", or "function". Also sets context member
3199 variable which remembers if we're in probe, global, function, or
3200 embedded context.
3201 (parser::parse_probe, parser::parse_statement)
3202 (parser::parse_global, parser::parse_functiondecl)
3203 (parser::parse_if_statement, parser::parse_delete_statement)
3204 (parser::parse_break_statement, parser::parse_continue_statement)
3205 (parser::parse_for_loop, parser::parse_while_loop)
3206 (parser::parse_foreach_loop, parser::parse_array_in): Looks for
3207 tok_keyword instead of tok_identifier.
3208 (parser::parse_probe_point): Allows keywords as part of a probe
3209 name, since "return" and "function" are keywords.
3210 (parser::parse_return_statement): Looks for tok_keyword instead of
3211 tok_identifier. Make sure we're in function context.
3212 (parser::parse_next_statement): Looks for tok_keyword instead of
3213 tok_identifier. Make sure we're in probe context.
3214 * parse.h: Added parse_context enum. Added 'tok_keyword' to
3215 token_type enum. Added parse_context 'context' member variable to
3216 parser class.
3217 * stap.1.in: Because the string() function has been removed,
3218 the 'string()' function reference has been changed to a 'sprint()'
3219 function reference.
3220 * stapex.5.in: Ditto.
3221 * stapfuncs.5.in: The description of the string() and hexstring()
3222 functions has been removed.
3223 * testsuite/buildok/context_test.stp: Calls to the string()
3224 function were converted to sprint() function calls.
3225 * testsuite/buildok/fifteen.stp: Ditto.
3226 * testsuite/buildok/nineteen.stp: Ditto.
3227 * testsuite/buildok/process_test.stp: Ditto.
3228 * testsuite/buildok/task_test.stp: Ditto.
3229 * testsuite/buildok/timestamp.stp: Ditto.
3230 * testsuite/buildok/twentyone.stp: Ditto.
3231 * testsuite/semok/args.stp: Ditto.
3232 * testsuite/semok/seven.stp: Ditto.
6e213f58
DS
3233 * testsuite/buildok/fourteen.stp: Calls to log()/string() were
3234 converted to a call to printf().
3235 * testsuite/buildok/sixteen.stp: Ditto.
3236 * testsuite/buildok/thirteen.stp: Ditto.
3237 * testsuite/buildok/twentythree.stp: Ditto.
3238 * testsuite/buildok/twentytwo.stp: Ditto.
6e213f58
DS
3239 * testsuite/buildok/seven.stp: Calls to the string()
3240 function were converted to sprint() calls. Calls to the
3241 hexstring() function were converted to sprintf() calls.
3242 * testsuite/semok/eleven.stp: Ditto.
6e213f58
DS
3243 * testsuite/buildok/seventeen.stp: Calls to log()/hexstring() were
3244 converted to a call to printf().
3245 * testsuite/semko/nineteen.stp: Ditto.
6e213f58
DS
3246 * testsuite/parseok/three.stp: Because keywords are reserved, a
3247 variable named 'string' was renamed to 'str'.
6e213f58
DS
3248 * testsuite/parseok/two.stp: Because keywords are reserved, a
3249 variable named 'global' was renamed to 'gbl'.
58b0083e
DS
3250 * testsuite/transko/two.stp: Because the parser now checks for
3251 'next' and 'return' statement context, a 'next' statement was
3252 removed from a function and a 'return' statement was removed from
3253 a probe.
9ed152b8 3254
ffd1346f
FCE
32552006-05-15 Frank Ch. Eigler <fche@elastic.org>
3256
3257 * tapsets.cxx, translator.cxx (*): Designate more emitted
3258 functions as static.
3259 * translator.cxx (visit_print_format): Correct regression
3260 regression from two weeks ago.
3261 * stapfuncs.5.in: Tweak wording. Deprecate returnval() in favour
3262 of retval().
3263
7dca715f
TN
32642006-05-12 Thang P Nguyen <thang.p.nguyen@intel.com>
3265
3266 * testsuite/buildok/probefunc.stp: test probefunc()
3267
8b181aa4
FCE
32682006-05-12 Frank Ch. Eigler <fche@elastic.org>
3269
3270 * stapfuncs.5.in: Clarify backtrace-related functions.
3271
17926083
DS
32722006-05-11 David Smith <dsmith@redhat.com>
3273
3274 * tapset/ctime.stp: New file.
3275
95bb018b
JS
32762006-05-09 Josh Stone <joshua.i.stone@intel.com>
3277
3278 * examples/small_demos/proc_snoop.stp: monitor all process events.
3279 * testsuite/buildok/task_test.stp: test compilation of all task
3280 functions.
3281 * testsuite/buildok/process_test.stp: test all process events and
3282 associated variables.
3283
0323ed4d
WC
32842006-05-09 Will Cohen <wcohen@redhat.com>
3285
3286 PR 2228
3287 * parse.h:
3288 * parse.cxx: Add << operator for struct source_loc.
3289 * translate.cxx (emit_module_init): Print location of probe in script.
3290
f272aacc 32912006-05-09 Li Guanglei <guanglei@cn.ibm.com>
bfdc9c09 3292
f272aacc
LG
3293 PR 2520
3294 * main.cxx: add -M option to stop merge per-cpu files in bulk mode
3295 * session.h: add merge member into systemtap_session
3296 * buildrun.cxx: generate stpd_cmd to stop merge per-cpu files if -M
3297 option is turned on by stap.
9ed152b8 3298
97266278 32992006-05-08 Li Guanglei <guanglei@cn.ibm.com>
bfdc9c09 3300
97266278
LG
3301 PR 2627
3302 * elaborate.cxx: epilogue style alias expansion
3303 * parse.cxx: parse += alias definition
3304 * staptree.h: add epilogue_style member to probe_alias
3305 * stap.1.in: add the description of epilogue style alias
3306 * testsuite/parseok/fifteen.stp: testcase for epilogue style alias
3307
b56337bc
RM
33082006-05-05 Roland McGrath <roland@redhat.com>
3309
3310 * configure.ac (build_elfutils): Pass CFLAGS to elfutils configure,
3311 editting out -Wall.
3312 * configure: Regenerated.
3313
f6291560
FCE
33142006-05-05 Frank Ch. Eigler <fche@elastic.org>
3315
3316 PR 2643
3317 * testsuite/buildok/syscalls.stp: Take "-u" away again.
3318 * configure.ac, systemtap.spec.in: Bump version to 0.5.7.
3319 * configure: Regenerated.
3320
6f231a27
FCE
33212006-05-05 Frank Ch. Eigler <fche@elastic.org>
3322
3323 * configure.ac, systemtap.spec.in: Bump version to 0.5.6.
3324 * configure: Regenerated.
3325
708a511b
WC
33262006-05-05 Will Cohen <wcohen@redhat.com>
3327
3328 * small_demos/fileopen.stp: Shows use of target() to look at pid.
3329 * small_demos/rwtiming.stp: Shows per executable histograms of time
3330 spent in read and write system calls.
3331
3897de04
ET
33322006-05-05 Eugene Teo <eteo@redhat.com>
3333
3334 PR 2433
3335 * tapsets.cxx (dwarf_query::blacklisted_p): Extend the list of
3336 blacklisted .return probes to include "do_exit". Correct funcname
3337 typo for "sys_groupexit".
3338 * tapset/syscalls.stp: Remove .return probe aliases of never-
3339 returning syscall.exit and syscall.exit_group calls.
3340
4c82f679
DS
33412006-05-05 David Smith <dsmith@redhat.com>
3342
3343 * translate.cxx (mapvar::exists): Added code for string array
3344 handling. Otherwise, string array elements always exist.
3345
fd64709f
JS
33462006-05-03 Josh Stone <joshua.i.stone@intel.com>
3347
3348 PR 2506
3349 * tapsets.cxx (dwarf_query::blacklisted_p): skip probes in .exit.*
3350
b5e09b8b
WC
33512006-05-02 Will Cohen <wcohen@redhat.com>
3352
3353 * translate.cxx (emit_module_init): Move closing '}' inside #ifdef.
3354
4b17d6af
WC
33552006-05-02 Will Cohen <wcohen@redhat.com>
3356
3357 PR 2228
3358 * stap.1.in: Document "-t" option.
3359 * main.cxx (main): Add "-t" option for collecting timing information.
3360 * session.h (systemtap_session): Corresponding changes.
3361 * tapsets.cxx (emit_probe_prologue, emit_probe_epilogue,
3362 emit_probe_entries):
3363 * translate.cxx: (emit_common_header, emit_module_init,
3364 translate_pass): Add time collection of timing information.
b56337bc 3365
4b17d6af 3366
f5334f06
FCE
33672006-05-01 Frank Ch. Eigler <fche@elastic.org>
3368
3369 * translate.cxx (visit_print_format): Fix regression in
3370 "printf" pseudo-result initialization.
3371
35ba8b83
FCE
33722006-04-30 Frank Ch. Eigler <fche@elastic.org>
3373
3374 PR 2610.
3375 * translate.cxx (c_unparser::visit_arrayindex, visit_stat_op):
3376 Detect empty aggregates consistently.
3377 (visit_print_format): Ditto. Also detect errors due to
3378 argument evaluation.
3379 (translator_output::*): Add a flush before a failing assert,
3380 to produce more context when debugging.
3381
6ed6c0f9
FCE
33822006-04-25 Frank Ch. Eigler <fche@elastic.org>
3383
3384 * Makefile.am: Removed "rpm" target.
3385 * Makefile.in, aclocal.m4: Regenerated.
3386
bdef2583
FCE
33872006-04-25 Frank Ch. Eigler <fche@elastic.org>
3388
3389 * elaborate.cxx (typeresolution_info::unresolved,invalid,
3390 mismatch): Print current function/probe name in error message.
3391 (semantic_pass_types): Pass sufficient information.
3392 * elaborate.h: Corresponding changes.
3393
1b07c728
FCE
33942006-04-25 Frank Ch. Eigler <fche@elastic.org>
3395
3396 PR 2427.
3397 * staptree.cxx (varuse_collecting_visitor::visit_embeddedcode):
3398 Support /* pure */ declaration. Stop using __tvar_ naming hack.
3399 (v_c_u::visit_print_format): Mark sprint and sprintf as
3400 side-effect-free.
3401 (deep_copy_visitor::visit_print_format): Propagate raw_components.
3402 * stap.1.in: Document declaration.
3403 * elaborate.cxx (semantic_pass_opt2): Verbose message tweak.
3404 (dead_stmtexpr_remover): Extend for more aggressive optimization.
3405 * tapsets.cxx (dwarf,mark_var_expanding_copy_visotor): Add
b56337bc 3406 /* pure */ declaration to rvalue expansions.
1b07c728
FCE
3407 * tapset/*.stp: Added /* pure */ declarations to many functions.
3408 * testsuite/parseok/unparsers.stp: Propagate guru mode flag.
3409 * testsuite/buildok/twentyfour.stp: New test.
3410
72948d62
FCE
34112006-04-24 Frank Ch. Eigler <fche@elastic.org>
3412
3413 PR 2599.
3414 * elaborate.cxx (visit_assignment): Tolerate null current_expr.
3415 * testsuite/semok/optimize.stp: Add relevant tests.
3416
2288c6bb
ET
34172006-04-23 Eugene Teo <eteo@redhat.com>
3418
3419 PR 2149
3420 * translate.cxx (mapvar::set): Test _stp_map_set_xx() for
3421 array overflows.
3422
83a89572
ET
34232006-04-23 Eugene Teo <eteo@redhat.com>
3424
3425 * small_demos/ansi_colors.stp: Add an example of using octal
3426 escape sequences to display all possible ansi colors.
3427
79cd1b27
ET
34282006-04-21 Eugene Teo <eteo@redhat.com>
3429
3430 PR 1326
3431 * translate.cxx (c_unparser::visit_binary_expression): Handle
3432 negative left and right shift count.
3433
35d4ab18
FCE
34342006-04-21 Frank Ch. Eigler <fche@elastic.org>
3435
3436 PR 953
3437 * elaborate.h (derived_probe): Add field "name". Stop passing
3438 "probe index" to other emit_* calls.
3439 (emit_probe_context_vars): New member function.
3440 * elaborate.cxx (derived_probe ctor): Generate unique name.
3441 * translate.cxx (*): Adapt to index->name.
3442 (emit_probe): Realize that probe locals only occur at nesting=0.
3443 * tapsets.cxx (*derived_probe::emit_*): Adapt to index->name.
3444 (mark_var_expanding_copy_visitor): New class to process $argN.
3445 (mark_derived_probe ctor): Call it.
3446 (mark_derived_probe::emit_probe_context_vars): Do it.
3447 * buildrun.cxx (compile_pass): Add more optional gcc verbosity.
3448 Add CFLAGS += -freorder-blocks.
3449 * testsuite/buildok/marker.stp: New test.
3450
f03954fd
FCE
34512006-04-19 Eugene Teo <eteo@redhat.com>
3452
3453 PR 2014
3454 * parse.cxx (lexer::scan): Added \[0-7]* case to preserve
3455 octal escape sequences.
3456
ef9e124a
MH
34572006-04-18 Martin Hunt <hunt@redhat.com>
3458
3459 * Makefile.am (install-data-local): Another try.
3460
a7c9924b
FCE
34612006-04-18 Frank Ch. Eigler <fche@elastic.org>
3462
3463 PR 2220
3464 * translate.cxx (visit_statement): Tolerate 0 first argument.
3465 (visit_for_loop, visit_foreach_loop): Call it thusly for condition
3466 expression.
3467 (visit_embededcode, visit_block, visit_null_statement): Don't
3468 call visit_statement() at all.
3469
fdbebf46
MH
34702006-04-18 Martin Hunt <hunt@redhat.com>
3471
3472 * Makefile.am (install-data-local): Tweak previous fix.
b56337bc 3473 (install-data-local):
fdbebf46 3474
206c02d0
MH
34752006-04-18 Martin Hunt <hunt@redhat.com>
3476
3477 * Makefile.am (install-data-local): Rewrite. Set
3478 ownership and permissions for all files and directories
3479 under runtime and tapset. Restrict files to source code.
fdbebf46 3480
206c02d0 3481 * Makefile.in: Rebuilt.
b56337bc 3482
ea8ea02c
FCE
34832006-04-18 Eugene Teo <eteo@redhat.com>
3484
3485 PR 1341
3486 * main.cxx (main): Use TMPDIR instead of hard-coded /tmp.
3487
4a5e8a70
FCE
34882006-04-17 Frank Ch. Eigler <fche@elastic.org>
3489
3490 * tapsets.cxx (mark_derived_probe::emit_{de}registrations):
3491 Use cmpxchg to synchronize.
3492
de2ca07e 34932006-04-12 Tom Zanussi <zanussi@us.ibm.com>
bfdc9c09 3494
de2ca07e
TZ
3495 PR 2538
3496 * buildrun.cxx (compile_pass): Remove space
3497 between -I and runtime path.
3498
931db038 34992006-04-12 Martin Hunt <hunt@redhat.com>
bfdc9c09 3500
b56337bc 3501 PR 2497
931db038
MH
3502 * translate.cxx (translate_pass): Don't
3503 reset STP_STRING_SIZE if it was already defined.
3504 Set it to 1024 by default.
3505
048c9764
MH
35062006-04-10 Martin Hunt <hunt@redhat.com>
3507
3508 * translate.cxx (visit_print_format): Call
3509 _stp_snprintf() instead of snprintf().
3510
dc0b623a 35112006-04-09 Martin Hunt <hunt@redhat.com>
bfdc9c09 3512
dc0b623a 3513 Add binary printf support.
b56337bc 3514
dc0b623a
MH
3515 * elaborate.cxx (visit_print_format): Don't include
3516 conv_literal or conv_size in components vector.
3517 Add conv_binary to switch statement.
b56337bc 3518
dc0b623a
MH
3519 * translate.cxx (visit_print_format): Eliminate
3520 special cast to (long long) for pe_long because new
3521 vsnprintf uses int64_t.
3522
3523 * staptree.h (struct print_format): Add conv_binary and conv_size.
3524
3525 * staptree.cxx (components_to_string): Add conv_binary case.
3526 Add conv_size case.
3527 (string_to_components): Add cases for 'b' and 'n'
3528
dc223023
FCE
35292006-04-08 Frank Ch. Eigler <fche@elastic.org>
3530
3531 * tapsets.cxx (resolve_prologue_endings): Rewrote.
3532 (resolve_prologue_endings2): Removed.
3533
3534 * gen-stapmark.h: Emit a 0-arity marker.
3535 * stapmark.h: Regenerated for arities 0..6.
3536
c0bcf601
RM
35372006-04-04 Roland McGrath <roland@redhat.com>
3538
3539 * configure.ac: Bump version to 0.5.5.
3540 Require elfutils-0.120.
3541 * configure: Regenerated.
3542 * systemtap.spec.in: Likewise.
3543
3544 * main.cxx (version): Use dwfl_version.
3545
3546 * loc2c.c (array_stride): stride_size -> byte_stride
3547
984dcc0f
TZ
35482006-04-04 Tom Zanussi <zanussi@us.ibm.com>
3549
3550 * stp_check: Change test for relay vs relayfs
3551
da4e78db
MH
35522006-03-30 Martin Hunt <hunt@redhat.com>
3553
c0bcf601
RM
3554 * tapsets.cxx (dwarf_derived_probe::emit_registrations):
3555 Change maxactive so single-processor kernels using
da4e78db
MH
3556 kretprobes don't get lots of dropped probes.
3557
30a279be
FCE
35582006-03-30 Frank Ch. Eigler <fche@elastic.org>
3559
3560 PR 953, part 1
3561 * tapsets.cxx: (mark_derived_probe*): New classes.
3562 (register_standard_tapsets): Register kernel/module.mark() family.
3563 * stapmark.h: New header for static instrumentation markers.
3564 * gen-stapmark.h: New perl script to generate it.
3565 * elaborate.cxx (derived_probe ctor): Ignore null location*.
3566
56894e91
JS
35672006-03-29 Josh Stone <joshua.i.stone@intel.com>
3568
3569 * tapsets.cxx (hrtimer_derived_probe::*): creates a probe point
3570 based on the hrtimer APIs.
3571 * tapsets.cxx (hrtimer_builder::*): parses the user's time-spec
3572 into a 64-bit nanosecond value, and calls the appropriate
3573 derived_probe.
3574 * tapsets.cxx (register_standard_tapsets): add hrtimer bindings
3575 * translate.cxx (translate_pass): add linux/random.h include,
3576 used for generating 64-bit random numbers for hrtimers.
3577
6c416c80
MH
35782006-03-28 Martin Hunt <hunt@redhat.com>
3579
3580 * testsuite/buildok/syscall.stp: Update so
3581 it works again.
3582
1e48b88a
TZ
35832006-03-16 Tom Zanussi <zanussi@us.ibm.com>
3584
3585 * configure.ac: Revert relayfs version check.
3586 * configure: Reverted.
3587 * translate.cxx (compile_pass): Remove relayfs include path.
3588
5b1cd012
TZ
35892006-03-15 Tom Zanussi <zanussi@us.ibm.com>
3590
3591 * configure.ac: Add check for relayfs version.
3592 * configure: Regenerated.
3593 * stp_check.in: Remove bundled relayfs loading/compilation, add
3594 check for relay (vs relayfs).
3595
3519ee2a
JS
35962006-03-13 Josh Stone <joshua.i.stone@intel.com>
3597
3598 * safety/safety.py: Support IA64 disassembly matching.
3599 * safety/data/opcodes-ia64: new opcode rules for IA64.
3600 * safety/data/references: Add references used by example scripts
3601 when compiled for IA64.
3602
3fd08858
FCE
36032006-03-13 Frank Ch. Eigler <fche@elastic.org>
3604
3605 * translate.cxx (emit_globals): Tag globals, especially the locks,
3606 as __cacheline_aligned.
3607
438cd7ed
FCE
36082006-03-09 Frank Ch. Eigler <fche@elastic.org>
3609
3610 * translate.cxx (emit_locks): Emit dummy references to unlock_ ...
3611 (emit_module_init): ... and probe_point.
3612
d20fd9e9
FCE
36132006-03-06 Frank Ch. Eigler <fche@elastic.org>
3614
3615 PR 2425
3616 * staptree.cxx (varuse_collecting_visitor::visit_embeddedcode):
3617 Realize that $var-setter functions have side-effects.
3618 * testsuite/transok/tval-opt.stp: New test.
3619
70404fc5
MH
36202006-03-06 Martin Hunt <hunt@redhat.com>
3621
3622 * buildrun.cxx (run_pass): Add "-u username".
c0bcf601 3623 * stapfuncs.5.in: Document system().
70404fc5 3624
e062491b
FCE
36252006-03-06 Frank Ch. Eigler <fche@elastic.org>
3626
3627 * stapex.5.in: Use \[aq] for plain single quotes for encoding
3628 variation tolerance.
3629
77a5c1f9
JS
36302006-03-03 Josh Stone <joshua.i.stone@intel.com>
3631
3632 * main.cxx (main): search forward for dashes in the kernel release,
6f9f33e2 3633 to work properly with release names with more than one dash. Also
77a5c1f9
JS
3634 * parse.cxx (eval_pp_conditional): ditto
3635 * tapsets.cxx (profile_derived_probe::profile_derived_probe): ditto
3636 * safety/safety.py (StaticSafety::__build_search_suffixes): ditto,
3637 and add copyright & GPL tag
3638
6f9f33e2
JS
3639 PR 2390
3640 * main.cxx (main): expand search path so that revision w.x.y.z
3641 searches w.x.y.z, w.x.y, and w.x.
3642
4090de8c
FCE
36432006-03-03 Frank Ch. Eigler <fche@elastic.org>
3644
3645 * tapset/indent.stp, indent-default.stp: New little tapset.
3646 * stapfuncs.5.in: Document it.
3647 * testsuite/buildok/indent.stp: Build it.
3648
c9467b6f
JS
36492006-02-27 Josh Stone <joshua.i.stone@intel.com>
3650
3651 * safety/*: Add a static safety checker.
3652
16c1c808
FCE
36532006-02-25 Frank Ch. Eigler <fche@elastic.org>
3654
3655 * translate.cxx (var::init): Don't crush string module_params.
3656 (emit_global_param): New function, forked out of emit_global,
3657 to put module_param calls at the bottom of C file.
3658 * translate.h: Corresponding changes.
3659
213bee8f
FCE
36602006-02-23 Frank Ch. Eigler <fche@elastic.org>
3661
c0bcf601 3662 PR 1304
213bee8f
FCE
3663 * parse.cxx (lexer): Take systemtap_session argument.
3664 (lexer::scan): Support $1..$NNNN and @1...@NNNN expansion.
3665 * stap.1.in: Document this.
3666 * testsuite/semok/args.stp: New test.
3667 * translate.cxx (var::init, emit_global): Emit code to allow
3668 named module parameters to initialize global string/number scalars.
3669 * stap.1.in: Don't document this yet.
c0bcf601 3670
213bee8f
FCE
3671 PR 2334
3672 * main.cxx (main): Clarify "-v" option repeatibility.
3673 * stap.1.in: Ditto.
3674
5ae893a1
RM
36752006-02-23 Roland McGrath <roland@redhat.com>
3676
3677 * Makefile.am (AUTOMAKE_OPTIONS): New variable, set dist-bzip2.
3678 * Makefile.in: Regenerated.
3679
aff9a0ec
MH
36802006-02-23 Martin Hunt <hunt@redhat.com>
3681
58cf0567
MH
3682 PR 1989. Adds support for %p in printf
3683 * staptree.h (struct print_format): Add conv_unsigned_ptr.
3684 * staptree.cxx (components_to_string): Output 'p'
3685 for conv_unsigned_ptr.
5ae893a1 3686 * elaborate.cxx (visit_print_format): Add case for
58cf0567
MH
3687 conv_unsigned_ptr.
3688
5ae893a1 36892006-02-23 Martin Hunt <hunt@redhat.com>
58cf0567 3690
5ae893a1
RM
3691 * Makefile.am (install-data-local): Create tapset/i686 and
3692 tapset/x86_64 directories. This fixes a problem where they
58cf0567 3693 were included, but had bad permissions.
aff9a0ec 3694 * Makefile.in: Rebuilt.
5ae893a1 3695
602149da
FCE
36962006-02-22 Frank Ch. Eigler <fche@elastic.org>
3697
3698 * stapfuncs.5.in: Document get_cycles().
3699 * testsuite/buildok/timestamp.stp: Build it and its friends.
3700
03d569d3
FCE
37012006-02-22 Frank Ch. Eigler <fche@elastic.org>
3702
3703 PR 2293.
3704 * tapsets.cxx (emit_probe_epilogue): Emit early local_irq_save().
3705 (emit_probe_epilogue): ... and matching _restore().
3706
3707 * main.cxx (main): Emit a "hello, I'm starting" message
3708 before pass 5 in verbose mode.
5ae893a1 3709
2f6e24e1
FCE
37102006-02-17 Frank Ch. Eigler <fche@elastic.org>
3711
3712 * stapfuncs.5.in (cpu): Document contextinfo function.
3713
13a9593f
FCE
37142006-02-15 Frank Ch. Eigler <fche@elastic.org>
3715
3716 * translate.cxx (varlock*): Removed now unnecessary class.
3717 (aggregation_locks): Renamed field to aggregations_active.
3718
2a99f48f
FCE
37192006-02-14 Frank Ch. Eigler <fche@elastic.org>
3720
3721 * stapfuncs.5.in: Document new queue_stats tapset.
3722 * elaborate.cxx (*): Put "while:" clarification messages before a
3723 thrown semantic error.
3724 * staptree.cxx (print_format::string_to_components): Correct
3725 parse of "%%" formatting element.
3726
7f9f3386
FCE
37272006-02-07 Frank Ch. Eigler <fche@elastic.org>
3728
3729 * src/testsuite/buildok/syscalls.stp: Build with "-u" to build-test
3730 all auxiliary functions.
3731 * tapsets.cxx (dwarf_query::add_probe_point): Add some "-vv" output.
3732
e0ed924a
JS
37332006-02-07 Josh Stone <joshua.i.stone@intel.com>
3734
3735 PR 2068
3736 * tapsets.cxx (dwarf_query::blacklisted_p): add __switch_to
3737 to the blacklist for x86_64 architecture only.
3738
c11a1f97
WC
37392006-02-06 Will Cohen <wcohen@redhat.com>
3740
3741 * tapset/syscall2.stp: Correct opening comment typo.
3742
21cedab1
WC
37432006-02-06 Will Cohen <wcohen@redhat.com>
3744
3745 * tapset/syscall2.stp: Correct closing comment typos.
3746
2ad1c02c
FCE
37472006-02-01 Frank Ch. Eigler <fche@elastic.org>
3748
3749 * testsuite/semko/one.stp: Make sure test case stays broken.
3750
b80e4244
MH
37512006-02-01 Martin Hunt <hunt@redhat.com>
3752
3753 * stapfuncs.5.in: Document is_return(), returnval() and
3754 probefunc().
3755 * testsuite/buildok/syscall.stp: Basic syscall test.
5ae893a1 3756
be9923ac
FCE
37572006-02-01 Frank Ch. Eigler <fche@elastic.org>
3758
3759 * configure.ac, systemtap.spec.in: Version 0.5.4.
3760 * configure: Regenerated.
3761
ea18b556
JS
37622006-01-31 Josh Stone <joshua.i.stone@intel.com>
3763
3764 PR 2252
3765 * translate.cxx (translate_pass): Fix legacy definition of
3766 read_trylock.
3767
1d738eed
FCE
37682006-01-30 Frank Ch. Eigler <fche@elastic.org>
3769
5ae893a1 3770 * main.cxx (main): Also print elapsed real time for each pass.
1d738eed 3771
b0ee93c4
FCE
37722006-01-27 Frank Ch. Eigler <fche@elastic.org>
3773
3774 * main.cxx: Make "-v" (verbose) flag a counter.
3775 * stap.1.in: Document this.
3776 * session.h: Corresponding changes.
3777 * {elaborate,buildrun,tapsets,translate}.cxx: Update all uses of
3778 verbose flag to compare it to sensible level for value of message.
3779
5ee1c56b
FCE
37802006-01-27 Frank Ch. Eigler <fche@elastic.org>
3781
3782 * main.cxx (main): In verbose mode, print user+sys times after
3783 each pass.
3784 * buildrun.cxx (compile_pass): Move success message back to main().
5ae893a1 3785
3066c15c
FCE
37862006-01-26 Frank Ch. Eigler <fche@elastic.org>
3787
3788 PR 2060: lock elevation, mop-up
3789 * staptree.cxx (functioncall_traversing_visitor): Store a
3790 current_function pointer during traversal.
3791 (visit_embeddedcode): Use it to handle $target-synthesized functions.
3792 (varuse_collecting_visitor::visit_assignment): Correct l-lr typo.
3793 (visit_foreach_loop): Note added write on sorted foreach.
3794 (visit_delete_statement): Note as read+write.
3795 * staptree.h: Corresponding changes.
3796 * elaborate.cxx (dead_assignment_remover::visit_expr_statement):
3797 Correct stmt token after possible expression rewriting.
3798 * tapsets.cxx (visit_target_symbol): Create naming convention
3799 to recognize $target-synthesized functions.
3800 * translate.cxx (emit_locks, emit_unlocks): New functions to
3801 emit lock/unlock sequences at the outermost level of a probe.
3802 (emit_probe): Call them.
3803 (varlock_*): #if-0 out the lock code generation. Later, these
3804 classes should be removed.
3805 (translate_pass): Emit read_trylock() kludge macro for old kernels.
3806
2ba0c474
FCE
38072006-01-25 Frank Ch. Eigler <fche@elastic.org>
3808
3809 PR 2205, patch from <hiramatu@sdl.hitachi.co.jp>:
3810 * parse.cxx (scan): Correct EOF detection for %{ %} case.
3811
cbfbbf69
FCE
38122006-01-24 Frank Ch. Eigler <fche@elastic.org>
3813
3814 PR 2060 etc.
3815 * tapsets.cxx (visit_target_symbol): Tolerate failed resolution by
3816 letting target_symbol instance pass through to optimizer and
3817 type checker.
3818 * elaborate.cxx (semantic_pass_optimize): New family of functions and
3819 associated visitor classes.
3820 (visit_for_loop): Tolerate absent init/incr clauses.
3821 (semantic_pass): Invoke unless unoptimized (-u) option given.
3822 * main.cxx, session.h: Add support for flag.
3823 * staptree.cxx (visit_for_loop): Tolerate absent init/incr clauses.
3824 (traversing_visitor::visit_arrayindex): Visit the index expressions.
3825 (functioncall_traversing_visitor): New class.
3826 (varuse_tracking_visitor): New class.
3827 * staptree.h: Corresponding changes.
3828 * parse.cxx (parse_for_loop): Represent absent init/incr expressions
3829 with null statement pointer instead of optimized-out dummy numbers.
3830 * stap.1.in: Document optimization.
3831 * testsuite/{semko,transko}/*.stp: Added "-u" or other code to many
3832 tests to check bad code without optimizer elision.
3833 * testsuite/semok/optimize.stp: New test.
3834
3835 * elaborate.cxx (unresolved, invalid, mismatch): Standardize error
3836 message wording.
3837 * stapfuncs.5.in: Tweak print/printf docs.
3838 * tapset/logging.stp: Remove redundant "print" auxiliary function,
3839 since it's a translator built-in.
3840 * testsuite/transok/five.stp: Extend test.
3841 * translate.cxx (emit_symbol_data): Put symbol table into a separate
3842 temporary header file, to make "-p3" output easier on the eyes.
3843 * buildrun.cxx (compile_pass): Eliminate test-mode support throughout.
3844 * main.cxx, session.h, translate.cxx: Ditto.
3845 * main.cxx (main): For last-pass=2 runs, print post-optimization ASTs.
3846
a7978f80
JS
38472006-01-18 Josh Stone <joshua.i.stone@intel.com>
3848
3849 * tapsets.cxx (profile_derived_probe::emit_probe_entries): Setup
3850 c->regs properly in light of the emit_probe_prologue change.
3851
fadbb91d
JS
38522006-01-18 Josh Stone <joshua.i.stone@intel.com>
3853
3854 * translate.cxx (c_unparser::visit_foreach_loop): improved the error
3855 message when _stp_pmap_agg fails.
3856
c01d3d3d
FCE
38572006-01-18 Frank Ch. Eigler <fche@elastic.org>
3858
3859 * translate.cxx (c_unparser_assignment::visit_arrayindex):
3860 Eliminate dummy assignments for "<<<" code.
3861
a92fb298
JS
38622006-01-17 Josh Stone <joshua.i.stone@intel.com>
3863
3864 PR 2156
3865 * testsuite/buildok/pmap_foreach.stp: Add test with sorting
3866
ea7f4e8d
JS
38672006-01-17 Josh Stone <joshua.i.stone@intel.com>
3868
3869 PR 2156
3870 * translate.cxx (c_unparser::visit_foreach_loop): Check the return
3871 value of _stp_pmap_agg() for NULL.
3872
4698b0a8
FCE
38732006-01-17 Frank Ch. Eigler <fche@elastic.org>
3874
3875 * systemtap.spec.in: Remove explicit kernel-devel dependency,
3876 since some old kernel rpm builds don't virtual-provide it for
3877 e.g. smp, hugemem.
3878
5db2fa89
FCE
38792006-01-17 Frank Ch. Eigler <fche@elastic.org>
3880
3881 PR 2142
3882 * translate.cxx (EXTRACTORS_PERMISSIVE): New experimental policy
3883 parameter.
3884 (c_unparser::visit_arrayindex, visit_print_format, visit_stat_op):
3885 Tolerate absent index (= NULL runtime return) in pmap.
3886 (*): Make semantic_error messages consistently lower case.
3887 * testsuite/buildok/iterate_histogram_buckets.stp: Note some missing
3888 functionality.
3889
0f02aa7a
JS
38902006-01-17 Josh Stone <joshua.i.stone@intel.com>
3891
3892 * stap.1.in: Document the 'delete' operator.
3893
eab7d4cf
RM
38942006-01-16 Roland McGrath <roland@redhat.com>
3895
3896 * systemtap.spec.in (elfutils_version): Require 0.119 now.
3897 * configure.ac, systemtap.spec.in: Version 0.5.3.
3898 * configure: Regenerated.
3899
45c2b487
JS
39002006-01-16 Josh Stone <joshua.i.stone@intel.com>
3901
3902 PR 2140
3903 * translate.cxx (mapvar::del): Add ability to delete an indexed stat
3904 from (p)maps.
3905 (delete_statement_operand_visitor::visit_symbol): Add ability to
3906 delete entire pmaps and scalars.
3907 (delete_statement_operand_tmp_visitor): Add a special tmpvar visitor
3908 to parallel delete_statement_operand_visitor.
3909 (c_tmpcounter::visit_delete_statement): Invoke the new visitor.
3910 * testsuite/buildok/delete.stp: Also test scalar deletes.
3911 * vim/syntax/stap.vim: Recognize 'delete' operator.
3912
315b86df
FCE
39132006-01-15 Frank Ch. Eigler <fche@elastic.org>
3914
3915 PR 2148
3916 * translate.cxx (MAXERRORS): Actually the max should be 0, so first
3917 error aborts session.
3918
2cfb0e46
FCE
39192006-01-13 Frank Ch. Eigler <fche@elastic.org>
3920
3921 * main.cxx (main): Suppress "Try again with -v" message if already
3922 verbose.
3923
c37d4942
FCE
39242006-01-13 Frank Ch. Eigler <fche@elastic.org>
3925
3926 * translate.cxx (c_unparser:getmap): Correct exception throwing typo.
3927
57eedf94
JS
39282006-01-12 Josh Stone <joshua.i.stone@intel.com>
3929
3930 PR 2056
3931 * translate.cxx (c_unparser::aggregation_locks): Keeps track of
3932 foreach's locks on pmaps to avoid extra aggregation.
3933 (c_unparser::visit_foreach_loop): Set aggregation_locks appropriately.
3934 (c_unparser::load_aggregate, mapvar::call_prefix, mapvar::get):
3935 Use a new parameter to indicate that we should read from the
3936 already-aggregated map rather than the full pmap..
3937 (c_unparser::visit_arrayindex c_unparser::visit_print_format,
3938 c_unparser::visit_stat_op): Use aggregation_locks to avoid taking a
3939 lock and aggregating the pmap.
3940 (c_unparser::emit_map_type_instantiations): To read from a pmap's
3941 aggregated map, we need to include map-gen.c for the _stp_map_*
3942 functions.
3943 (c_unparser::obtained_locks, varlock::varlock, varlock::~varlock):
3944 Add simple static checking to detect incompatible nested locks during
3945 translation, and flag it as an error.
3946
7930d379
JS
39472006-01-11 Josh Stone <joshua.i.stone@intel.com>
3948
3949 PR 2140
3950 * testsuite/buildok/delete.stp: Test correct compilation of the
3951 'delete' operator for all "legal" variations.
3952
8656ed8f
FCE
39532006-01-11 Frank Ch. Eigler <fche@elastic.org>
3954
3955 * translate.cxx (MAXERRORS): Oops, set back to intended default of 1.
3956
2fae2e30
FCE
39572006-01-10 Frank Ch. Eigler <fche@redhat.com>
3958
3959 PR 1972.
3960 * tapsets.cxx (var_expanding_copy_visitor::visit_target_symbol):
3961 Produce error message for $var access within .return probes.
3962 * testsuite/semko/thirtyfour.stp: New test.
3963
db22e55f
FCE
39642006-01-10 Frank Ch. Eigler <fche@redhat.com>
3965
3966 PR 2060.
3967 * buildrun.cxx (compile_pass): Add "V=1" to kbuild if verbose.
3968 * translate.cxx (translator_output): For output-file constructor,
3969 set an explicit output buffer.
3970 (emit_module_init, emit_module_exit): Reorganize output, to spit
3971 each individual probe registration/deregistration blurb into a
3972 separate function.
3973 * translate.h: Corresponding changes; set default buffer size to 8K.
3974 * translate.cxx, tapsets.cxx: Replace "endl" by buffer-friendly "\n"
3975 throughout code generation routines.
3976
a9a29deb
FCE
39772006-01-09 Frank Ch. Eigler <fche@redhat.com>
3978
3979 * HACKING: Extend guidelines for tapset testing.
3980
e885b2ec
WC
39812006-01-06 Will Cohen <wcohen@redhat.com>
3982
3983 * Makefile.am (gcov,lcov): Don't remove .gcno .gcda files.
3984 * Makefile.am (gcov): Fix to report data when tests fail.
3985 * Makefile.am (lcov): New rule to generate html coverage data.
3986 * Makefile.in: Regenerated.
3987
1820694f
JS
39882006-01-05 Josh Stone <joshua.i.stone@intel.com>
3989
3990 PR 2056
3991 * translate.cxx (var::~var, var::hist, var::buckets): make these
3992 methods virtual, so we can use polymorphism.
3993 (mapvar::hist, mapvar::buckets): Override the corresponding var
3994 methods to handle pmaps correctly.
3995 (c_unparser::visit_arrayindex, c_unparser::visit_print_format): Make
3996 use of the new polymorphic behavior of var & mapvar when dealing with
3997 histogram data.
3998 * testsuite/buildok/pmap_foreach.stp: Add tests to check histogram
3999 accesses with for/foreach.
4000
8616e84e
FCE
40012006-01-04 Frank Ch. Eigler <fche@elastic.org>
4002
4003 PR 2057.
4004 * translate.cxx (c_unparser_assignment::visit_arrayindex): Don't take
4005 write lock around pmap accumulation.
4006
64150b1b
WC
40072006-01-04 Will Cohen <wcohen@redhat.com>
4008
4009 * testsuite/buildok/printf.stp: Improve test coverage.
eab7d4cf 4010
af9ea5ee
FCE
40112006-01-03 Frank Ch. Eigler <fche@redhat.com>
4012
4013 * tapsets.cxx (emit_deregistration): Fix bad thinko on loop nesting.
4014
9a604fac
FCE
40152006-01-03 Frank Ch. Eigler <fche@redhat.com>
4016
4017 PR 1144, 1379
4018 * tapsets.cxx (emit_probe_prologue, _epilogue): New routines.
4019 Call from existing derived_probe spots. Implement soft errors in
4020 epilogue code. Implement reentrancy detection in prologue code.
4021 (dwarf_derived_probe::emit_deregistration): Add kprobes layer
4022 "nmissed" to skipped_count.
4023 * translate.cxx (varlock): Use nsleep(TRYLOCKDELAY) in lock
4024 contention loop.
4025 (emit_module_exit): Report number of soft errors and skipped probes.
4026 (emit_function, _probe): Add __restrict__ marker to context pointer.
4027 (translate_pass): Define new MAXTRYLOCK, TRYLOCKDELAY, MAXERRORS,
4028 MAXSKIPPED parameters.
4029 * tapset/logging.stp (error): Don't stp_error, just set context state.
4030 * stap.1.in, stapfuncs.5.in: Document soft errors.
4031 * elaborate.h: Corresponding changes.
4032
d003aa24 40332005-12-23 Kevin Stafford <krstaffo@us.ibm.com>
f256184b
FCE
4034
4035 * tapset/2.6.9-20.ELsmp/syscalls.stp: added kernel
4036 version tapset
4037 * tapset/2.6.9-20.ELsmp/i686/syscalls.stp: added kernel
4038 version arch specific tapset
4039 * tapset/doc/discrepancies.txt: log of kernel version
4040 discrepancies.
4041
f63ebe0e
RM
40422005-12-22 Roland McGrath <roland@redhat.com>
4043
4044 * configure.ac: Pass LDFLAGS to elfutils configure to force DT_RUNPATH.
4045 * configure: Regeneraed.
4046
40687c55
JS
40472005-12-21 Josh Stone <joshua.i.stone@intel.com>
4048
2a971a9f 4049 PR 2056
40687c55
JS
4050 * translate.cxx (itervar::next): emit different code for pmaps
4051
112b531a
FCE
40522005-12-21 Frank Ch. Eigler <fche@elastic.org>
4053
4054 * loc2c.h: Add __attribute__ defeating code for g++ 3.3 compatibility.
4055
0dd17aef
JS
40562005-12-20 Josh Stone <joshua.i.stone@intel.com>
4057
4058 * vim/filetype.vim: defines *.stp files as SystemTap scripts
4059 * vim/ftplugin/stap.vim: sets the comment styles
4060 * vim/indent/stap.vim: enables simple auto-indenting
4061 * vim/syntax/stap.vim: defines syntax highlighting
4062
0b2cecb7
RM
40632005-12-19 Roland McGrath <roland@redhat.com>
4064
4065 * configure.ac, systemtap.spec.in: Version 0.5.2.
4066 * configure: Regenerated.
4067
f077ddd9
RM
40682005-12-17 Roland McGrath <roland@redhat.com>
4069
4070 * staptree.h: #include <cassert> here.
4071
a6a5d6aa 40722005-12-14 Kevin Stafford <krstaffo@us.ibm.com>
f077ddd9
RM
4073
4074 * tapset/2.6.14/syscalls.stp: Added 2.6.14 syscalls to tapset.
4075 * 2.tapset/6.14/i686/syscalls.stp: Added i386 arch specific syscalls
4076 to tapset for kernel 2.6.14.
4077 * tapset/2.6.9-24.ELsmp/syscalls.stp: Added 2.6.9-24.ELsmp syscalls.
4078 * tapset/2.6.9-24.ELsmp/x86_64/syscalls.stp: Added x86_64 arch
4079 specific syscalls to tapset for kernel 2.6.9-24.ELsmp.
4080 * tapset/system_calls.stp: File removed.
4081
8f48f222
MH
40822005-12-14 Martin Hunt <hunt@redhat.com>
4083
4084 * tapset/system_calls.stp (epoll.ctl): Temporarily remove
4085 references to $op and $event because gcc 4.0.2 can't
4086 find them.
4087 (epoll.wait): Ditto for $maxevents.
f077ddd9 4088
7b99c7d3
FCE
40892005-12-13 Frank Ch. Eigler <fche@redhat.com>
4090
4091 * tapsets.cxx (var_expanding_copy_visitor::visit_target):
4092 Transcribe token pointer to synthesized functiondecl.
4093
a4578bd0
JS
40942005-12-12 Josh Stone <joshua.i.stone@intel.com>
4095
b3a26c7b
FCE
4096 * tapset/context.stp
4097 (execname,pid,tid,ppid,pexecname,gid,egid,uid,euid): Removed
4098 in_interrupt checks and other pointer checks. We now operate on
4099 the assumption that "current" and its related data are always
4100 valid.
4101 * tapsets.cxx (profile_derived_probe::*,profile_builder::build):
4102 Do kernel version checks at translation time, using the same
4103 internal mechanisms as the preprocessor - a la %( kernel_v <
4104 "2.6.10" %? ... %: ... %)
a4578bd0 4105
5a40a123 41062005-12-12 Kevin Stafford <krstaffo@us.ibm.com>
b3a26c7b 4107
5a40a123
KS
4108 * main.cxx (main): Added arch directory to the existing
4109 kernel-version-sensitive search path.
b3a26c7b 4110
e0ab3ee9
FCE
41112005-12-12 Frank Ch. Eigler <fche@redhat.com>
4112
4113 * translate.cxx (translate_pass): Emit #include <linux/profile.h>.
4114
3513970e
WC
41152005-12-12 Will Cohen <wcohen@redhat.com>
4116
4117 * tapset/logging.stp (function_exit): Make sure systemtap probes
4118 stop collection additional data.
4119
a9c62ac9
FCE
41202005-12-12 Frank Ch. Eigler <fche@redhat.com>
4121
4122 Fix parse tree pretty-printer.
4123 * staptree.h (print_format): Add raw_components field.
4124 * parse.cxx (parse_symbol): Set it.
4125 * staptree.cxx (lex_cast_qstring): Copy it here too.
4126 (binary_expression::print): Add a space around operator, due to
4127 lexical ambiguity (expr % paren-expr) vs %( preprocessor op.
4128 (array_in:: foreach_loop:: arrayindex::print): Print base as indexable.
4129 (print_format::string_to_components): Use parse_error, not semantic.
4130 (print_format::print): Properly quote formatting string. Print
4131 histogram argument.
4132 * translate.cxx (visit_print_format): Properly quote formatting string.
4133 (varlock): Reword lock timeout error message.
4134 * testsuite/buildok/printf.stp: Add some quoting troublemakers.
f077ddd9 4135 * testsuite/parseok/unparser.stp: New file.
a9c62ac9 4136
ea716190
RM
41372005-12-11 Roland McGrath <roland@redhat.com>
4138
d299d4a7
RM
4139 * configure.ac: Bump version to 0.5.1 for test builds.
4140 * systemtap.spec.in: Remove ExclusiveArch.
4141 * configure: Regenerated.
4142
4143 PR 1916
4144 * configure.ac: Grok --with-elfutils.
4145 * Makefile.am [BUILD_ELFUTILS] (install-elfutils, stamp-elfutils):
4146 New targets.
4147 [BUILD_ELFUTILS] (stap_LDFLAGS, stap_LDFLAGS): Add flags
4148 to point at local elfutils build.
4149 [BUILD_ELFUTILS] (BUILT_SOURCES): Add stamp-elfutils.
4150 [BUILD_ELFUTILS] (stap_DEPENDENCIES): New variable.
4151 [BUILD_ELFUTILS] (lib-elfutils/libdw.so): New target.
4152 [BUILD_ELFUTILS] (install-exec-local): Depend on install-elfutils.
4153 (loc2c_test_LDADD): Set this to $(stap_LDADD).
4154 (loc2c_test_CPPFLAGS, loc2c_test_LDFLAGS): New variables.
4155 * Makefile.in: Regenerated.
4156 * compile: New file from automakeland.
4157 * systemtap.spec.in (elfutils_version): Require 0.118 or later.
4158 [bundled_elfutils]: Remove old hacks for building elfutils, and rely
4159 on configure --with-elfutils instead.
4160
4161 * Makefile.am (pkglibexecdir): New variable.
4162 (AM_CPPFLAGS): Use it.
4163 (pkglibexec_PROGRAMS): Set this instead of noinst_PROGRAMS with stpd.
4164 (pkglibexec_SCRIPTS, CLEANFILES): New variables.
4165 (install-exec-local): Target removed.
4166 * runtest.sh: Set LD_LIBRARY_PATH when lib-elfutils is in use.
4167
ea716190
RM
4168 * loc2c-test.c (get_location): Fix function name in error message.
4169
c8959a29
GH
41702005-12-09 Graydon Hoare <graydon@redhat.com>
4171
4172 * elaborate.cxx (alias_expansion_builder::build): Fix comment typo.
4173 * tapsets.cxx (symbol_cache): New class.
4174 (dwflpp::cache): Add cache.
4175 (dwflpp::pattern_limited_cus): New member.
4176 (dwflpp::pattern_limited_funcs): New member.
4177 (dwflpp::limit_search_to_function_pattern): New method.
4178 (dwflpp::iterate_over_cus): Modify to use cached, limited sets.
4179 (dwflpp::iterate_over_functions): Likewise.
4180 (dwarf_builder::user_dw): New member.
4181 (dwarf_builder::kern_dw): New member.
4182 (dwarf_builder::~dwarf_builder): Add dtor.
4183 (query_module): Call dwflpp::limit_search_to_function_pattern.
4184 (dwarf_builder::build): Initialize persistent dwflpp members on demand.
4185
460b2038
GH
41862005-12-08 Graydon Hoare <graydon@redhat.com>
4187
ea716190 4188 * translate.cxx (delete_statement_operand_visitor::visit_arrayindex):
460b2038
GH
4189 Prohibit deleting histogram buckets.
4190 (c_tmpcounter::visit_array_in): Direct to visit_arrayindex.
4191 (c_unparser::visit_array_in): Likewise.
4192
4193 * testsuite/buildok/histogram_operator_in.stp: New test.
4194
0c6296b2
FCE
41952005-12-08 Frank Ch. Eigler <fche@elastic.org>
4196
4197 PR 1937
4198 * buildrun.cxx (run_pass): Pass new "-d PID" option to stpd.
4199 Set SIGHUP to SIG_IGN too.
4200
71572ba8
GH
42012005-12-07 Graydon Hoare <graydon@redhat.com>
4202
4203 * staptree.cxx (traversing_visitor::visit_foreach_loop): Visit
4204 the base indexable of the foreach loop.
4205
4206 * translate.cxx (c_tmpcounter::visit_foreach_loop): Implement
4207 histogram bucket iteration arm.
4208 (c_unparser::visit_foreach_loop): Likewise.
4209 (c_tmpcounter::visit_arrayindex): Fix typo.
4210
4211 * testsuite/buildok/iterate_histogram_buckets.stp: New test.
4212
b68e0c9e
MH
42132005-12-07 Martin Hunt <hunt@redhat.com>
4214
4215 * translate.cxx (mapvar::fini): Use _stp_pmap_del() on pmaps.
4216 (emit_global): For pmaps, use "PMAP" instead of "MAP".
4217
456aa31c
FCE
42182005-12-06 Frank Ch. Eigler <fche@elastic.org>
4219
4220 PR 1934.
4221 * tapsets.cxx (resolve_prologue_endings2): Add new heuristic for
4222 tail-call optimized functions.
4223 (query_func_info): Make somewhat less verbose.
4224
1b9cc5b6
GH
42252005-12-06 Graydon Hoare <graydon@redhat.com>
4226
4227 * translate.cxx (visit_print_format): Explicitly Cast int64_t
4228 (pe_long) args to (long long) in generated code, for portability.
4229
29e64872
FCE
42302005-12-05 Frank Ch. Eigler <fche@elastic.org>
4231
4232 * *.cxx: Add <cassert> #include as needed.
4233
1bbeef03
GH
42342005-12-02 Graydon Hoare <graydon@redhat.com>
4235
4236 * elaborate.cxx (mutated_var_collector): Forward
4237 traversal portion of calls to base class.
4238 (mutated_var_collector::visit_arrayindex): Resolve
4239 arrayindex-into-histogram expression as pe_long.
4240 (typeresolution_info::visit_print_format): Traverse
4241 into histogram if present.
4242
4243 * parse.cxx (parse_symbol): Handle parse ambiguity surrounding
4244 print(@hist_op(...)[...]).
4245
4246 * staptree.cxx (traversing_visitor::visit_arrayindex): Visit
4247 base member of arrayindex.
4248
4249 * translate.cxx (c_unparser::histogram_index_check): New method.
4250 (var::hist): Fix bug.
4251 (var::buckets): New method.
4252 (stmt_expr::stmt_expr): Print with newline.
4253 (c_unparser::load_map_indices): Handle indexing-histogram case.
4254 (c_tmpcounter::visit_arrayindex): Likewise.
4255 (c_unparser::visit_arrayindex): Likewise.
4256 (c_tmpcounter_assignment::visit_arrayindex): Throw error when
4257 user attempts to write to histogram bucket.
4258 (c_unparser_assignment::visit_arrayindex): Likewise.
4259
4260 * testsuite/buildok/print_histogram_entry.stp: New test.
4261
5ef5d3d5
FCE
42622005-12-02 Frank Ch. Eigler <fche@elastic.org>
4263
4264 * configure.ac: Bump version number.
4265 * stap.1.in: Document some of the new print/stats stuff.
4266 * configure: Regenerated.
4267 * systemtap.spec.in: Enable ia64 and ppc builds.
4268
c0518f84
FCE
42692005-12-01 Frank Ch. Eigler <fche@elastic.org>
4270
4271 PR 1944 improved hack.
4272 * translator.cxx (c_tmpcounter::visit_block): New routine, allows
4273 overlay of sequential statements' temporaries within context.
4274
c253c2ea
FCE
42752005-12-01 Frank Ch. Eigler <fche@redhat.com>
4276
4277 PR 1944 quick hack.
4278 * translator.cxx (translate_pass): Reduce default MAXNESTING to 10.
4279 (emit_module_init): Add a paranoid check against oversize contexts.
4280 * stap.1.in: Document MAXNESTING change.
4281
39e57ce0
FCE
42822005-11-30 Frank Ch. Eigler <fche@redhat.com>
4283
4284 PR 1276
4285 From Josh Stone <joshua.i.stone@intel.com>:
4286 * tapsets.cxx (profile_derived_probe, profile_builder,
4287 register_standard_tapsets): Support timer.profile variety.
4288 * stapprobes.5.in: Document it.
4289 * testsuite/builok/fourteen.stp: Test its buildability.
4290
a4636912
GH
42912005-11-28 Graydon Hoare <graydon@redhat.com>
4292
4293 * translate.cxx (var::assert_hist_compatible): New method.
4294 (var::hist): New method.
4295 (c_unparser::load_aggregate): New method.
4296 (hist_op_downcaster): Remove, it was a mistake.
4297 (expression_is_hist_op): Likewise.
4298 (c_tmpcounter::visit_print_format): Implement print(@hist(...)).
4299 (c_unparser::visit_print_format): Likewise.
4300
4301 * staptree.h (struct print_format): Add optional hist_op* member.
4302 * staptree.cxx (traversing_visitor::visit_functioncall): Visit
4303 hist_op if present in print_format.
4304 (deep_copy_visitor::visit_print_format): Likewise.
4305
4306 * parse.cxx (parse_symbol): Special case to consume print(@hist(...)).
4307
4308 * elaborate.cxx (typeresolution_info::visit_arrayindex): Fix type inference bug.
4309 (typeresolution_info::visit_foreach_loop): Likewise.
4310
4311 * testsuite/buildok/print_histograms.stp: New test.
4312
bdf00cf6
FCE
43132005-11-28 Frank Ch. Eigler <fche@redhat.com>
4314
4315 * translate.cxx (c_tmpcounter_assignment::visit_symbol): Don't
4316 emit unused temporary into context. Saves mucho space with strings.
4317
07370232
RM
43182005-11-27 Roland McGrath <roland@redhat.com>
4319
5c9ec041
RM
4320 * loc2c.c (location_from_address): Diagnose null FB_ATTR specially.
4321
07370232
RM
4322 * loc2c.c (location_from_address): Fix function name in error message.
4323
2b3d9bba
FCE
43242005-11-27 Frank Ch. Eigler <fche@elastic.org>
4325
4326 * loc2c.c (location_from_address): Tolerate errors with NULL *input.
4327
e4ce4aa5
RM
43282005-11-26 Roland McGrath <roland@redhat.com>
4329
018d224d 4330 PR 1868.
b4b6a4e7
RM
4331 * loc2c.c (struct location): Move frame_base member out of the union.
4332 (alloc_location): Initialize it.
4333 (new_synthetic_loc, translate, location_from_address): Update uses.
4334 (emit_loc_value): Don't handle frame_base here.
4335 (c_emit_location): Do it here instead.
4336 (translate): Track USED_DEREF separately for each piece.
4337 Use a temporary struct when allocating a new piece, letting
4338 a pending loc_address piece finish up first.
4339
e4ce4aa5
RM
4340 * loc2c-test.c (main): Free SCOPES at end.
4341 (handle_variable): Free POOL at end.
4342
4343 * loc2c.c (translate): Initialize LOC->address.used_deref at start.
4344
bb1b2619
FCE
43452005-11-25 Frank Ch. Eigler <fche@elastic.org>
4346
4347 PR 1336.
4348 * tapsets.cxx (translate_final_fetch_or_store): Remove apparently
4349 unnecessary check.
4350 * testsuite/transok/ten.stp: New test for void* integerification.
4351
44ce8ed5
FCE
43522005-11-24 Frank Ch. Eigler <fche@redhat.com>
4353
4354 PR 1903
4355 * parse.cxx (eval_pp_conditional): Support %( arch == "i686" %) form.
4356 * stap.1.in: Document it.
4357 * testsuite/parseok/fourteen.stp: Test it.
4358 * session.h (architecture): New field.
4359 * main.cxx (main): Initialize it.
4360
ded98b33
FCE
43612005-11-24 Frank Ch. Eigler <fche@redhat.com>
4362
4363 PR 1917
4364 * translate.cxx (emit_common_header, emit_module_init,
4365 emit_module_exit): Switch context array to per-cpu kmalloc variant.
4366 * tapsets (*::emit_probe_entires): Use per_cpu_ptr() for my context.
4367
07c17d67
GH
43682005-11-23 Graydon Hoare <graydon@redhat.com>
4369
4370 * elaborate.h (get_symbol_within_expression): Make visible.
4371 * elaborate.cxx (get_symbol_within_expression): Make non-static.
4372 (stat_decl_collector): New struct.
4373 (semantic_pass_stats): New semantic pass.
4374 (semantic_pass): Call it.
4375 (semantic_pass_symbols): Remove collection of statistic_decls from files.
4376 (visit_stat_op): Only fail if inferred type is not pe_long.
4377
4378 * parse.cxx (parser::parse): Don't pass per-file statistic_decl
ad6b1521 4379 into parse_global.
07c17d67 4380 (parser::parse_global): Don't parse global statistic_decls,
ad6b1521 4381 they're obsolete.
07c17d67
GH
4382 * parse.hh (parser::parse_global): Adjust signature to match.
4383
4384 * session.h (statistic_decl::operator==): New method.
4385
4386 * staptree.h (print_format::is_empty): New method.
4387 (stapfile::stat_decls): Remove field.
4388 * staptree.cxx (string_to_components): Fix bugs in format-string
4389 parser.
4390
4391 * translate.cxx (var): Make private fields protected.
4392 (var::init): Support HIST_NONE stats.
4393 (aggvar): New struct.
4394 (mapvar::is_parallel): New method.
4395 (mapvar::call_prefix): Use it.
4396 (mapvar::calculate_aggregate): New method.
4397 (mapvar::fetch_existing_aggregate): New method.
4398 (mapvar::get): Support pe_stats.
4399 (mapvar::init): Use is_parallel(), and support HIST_NONE.
4400 (itervar::itervar): Only fault on pe_unknown.
4401 (itervar::start): Use mapvar::is_parallel and
4402 mapvar::fetch_existing_aggregate.
4403 (emit_map_type_instantiations): Include alloc.c before pmap-gen.c.
4404 Include pmap-gen.c for pe_stats maps.
4405 (c_unparser::gensym_aggregate): New method.
4406 (c_unparser::visit_foreach_loop): Handle mapvar::is_parallel case.
4407 (arrayindex_downcaster): New struct.
4408 (expression_is_arrayindex): New function.
4409 (c_tmpcounter::visit_stat_op): New method.
4410 (c_unparser::visit_stat_op): Implement.
4411 (c_unparser::visit_hist_op): Add commentary, still not implemented.
4412
4413 * testsuite/buildok/stat_{insert,extract}.stp: New tests.
4414 * testsuite/semok/ten.stp: Correct for changes to global declarations.
4415 * testsuite/semko/*.stp: Likewise.
4416
2f47b955
RM
44172005-11-21 Roland McGrath <roland@redhat.com>
4418
4419 * loc2c.c (c_translate_location): Take Dwarf_Op vector as argument
ad6b1521 4420 directly, not Dwarf_Attribute.
2f47b955
RM
4421 * loc2c.h: Update decl.
4422 * loc2c-test.c (get_location): New function.
4423 (handle_variable): Use it.
4424 * tapsets.cxx (dwflpp::translate_location): New method.
4425 (dwflpp::translate_components, dwflpp::literal_stmt_for_local): Use it.
4426
422d1ceb
FCE
44272005-11-21 Frank Ch. Eigler <fche@elastic.org>
4428
4429 PR 1276
4430 From Josh Stone <joshua.i.stone@intel.com>:
4431 * tapsets.cxx (timer_derived_probe, timer_builder,
4432 register_standard_tapsets): Support timer.ms() variety.
4433 * stapprobes.5.in: Document it.
4434 * testsuite/builok/fourteen.stp: Test its buildability.
4435
b1f3e72e
MH
44362005-11-18 Martin Hunt <hunt@redhat.com>
4437
4438 PR 1837
4439 * testsuite/buildko/one.stp: Replace printk.
4440 * testsuite/buildok/one.stp: Ditto.
4441 * testsuite/buildok/two.stp: Ditto.
2f47b955
RM
4442 * testsuite/semko/fifteen.stp: Ditto.
4443 * testsuite/semko/fourteen.stp: Ditto.
4444 * testsuite/semko/thirteen.stp: Ditto.
4445 * testsuite/transok/eight.stp: Ditto.
4446 * testsuite/transok/seven.stp: Ditto.
4447 * testsuite/transok/six.stp: Ditto.
4448
4449 * tapsets.cxx (*::emit_probe_entries): Replace printk() calls
b1f3e72e
MH
4450 with _stp_warn().
4451
4452 * stap.1.in: Replace printk with printf in example.
4453
4454 * stapfuncs.5.in: Remove docs for printk and add for
4455 print and printf.
4456
4457 * tapset/logging.stp (printk): Deleted.
4458
d02548c0
GH
44592005-11-13 Graydon Hoare <graydon@redhat.com>
4460
4461 * staptree.h (struct indexable): New struct.
4462 (classify_indexable): New function.
4463 (classify_const_indexable): New function.
4464 (struct symbol): Implement indexable.
4465 (struct arrayindex): Take indexable as base.
2f47b955 4466 (struct foreach_loop): Take indexable as base.
d02548c0
GH
4467 (struct print_format): New struct.
4468 (enum stat_component_type): New enum.
4469 (struct stat_op): New struct.
4470 (enum historgram_type): New enum.
4471 (struct hist_op): New struct.
2f47b955 4472 (struct visitor)
d02548c0
GH
4473 (struct traversing_visitor)
4474 (struct throwing_visitor)
4475 (struct deep_copy_visitor): Add new visitor methods.
4476 (require): Specialize for indexable*.
4477
4478 * staptree.cxx (print_format::*)
4479 (stat_op::*)
4480 (hist_op::*)
4481 (indexable::*)
4482 (traversing_visitor::*)
4483 (throwing_visitor::*)
4484 (deep_copy_visitor::*)
4485 (classify_indexable)
4486 (classify_const_indexable): Implement
4487 (deep_copy_visitor::*): Update to use indexables.
4488
4489 * parse.h (parser::parse_indexable): New method.
4490 (parser::parse_hist_op_or_bare_name): New method.
4491
4492 * parse.cxx (lexer::scan): Accept @ in identifiers.
4493 (parser::parse_array_in)
4494 (parser::parse_foreach_loop): Call parse_indexable.
4495 (parser::parse_hist_op_or_bare_name): Implement.
4496 (parser::parse_indexable): Implement.
4497 (parser::parse_symbol): Accept printf, stat_ops, hist_ops.
4498
4499 * elaborate.h (struct typeresolution_info): Add methods for
4500 visiting print_format, stat_op, hist_op.
4501
4502 * elaborate.cxx (symbol_fetcher): New class.
4503 (get_symbol_within_expression): New function.
4504 (get_symbol_within_indexable): New function.
4505 (mutated_var_collector): Replace mutated_map_collector.
4506 (no_var_mutation_during_iteration_check): Replace
4507 no_map_mutation_during_iteration_check.
4508 (semantic_pass_vars): Replace semantic_pass_maps.
4509 (semantic_pass): Update call accordingly.
4510 (symresolution_info::*) Add new visitors, teach about indexables
4511 (typeresolution_info::*) Likewise.
4512
4513 * translate.cxx
4514 (c_unparser::getiter): Take symbol, not foreach_loop.
4515 (c_unparser::*) Add new visitors, teach about indexables.
2f47b955 4516 (c_tmpcounter::*)
d02548c0
GH
4517 (delete_statement_operand_visitor::visit_arrayindex)
4518 (c_tmpcounter_assignment::*)
4519 (c_unparser_assignment::*): Likewise.
4520 (hist_op_downcaster): New struct.
4521 (expression_is_hist_op): New function.
4522
4523 * testsuite/buildok/printf.stp: New test for print_format.
4524
02654aef
FCE
45252005-11-10 Frank Ch. Eigler <fche@elastic.org>
4526
4527 * translate.cxx (c_unparser::visit_array_in, visit_arrayindex):
4528 Finish adapting to PR 1275 by switching back to read locks.
4529
b0c33276
MH
45302005-11-09 Martin Hunt <hunt@redhat.com>
4531
4532 * translate.cxx: New API uses HIST_LOG and HIST_LINEAR
4533 instead of HSTAT_LOG and HSTAT_LINEAR.
4534
61df7c73
FCE
45352005-11-09 Frank Ch. Eigler <fche@elastic.org>
4536
4537 Reported by Guang Lei Li <liguangl@cn.ibm.com>:
4538 * tapset/context.stp (pid,ppid,tid): Correctly pick tgid vs pid.
4539 * testsuite/buildok/context_test.stp: Print out tid() too.
4540
4893e4b2
FCE
45412005-11-08 Frank Ch. Eigler <fche@redhat.com>
4542
4543 * tapsets.cxx (blacklisted_p): Tolerate NULL filename parameter.
4544 * src/testsuite/semok/twenty.stp: New test to enumerate everything
4545 dwarfly probeable.
4546
1a0e4851
FCE
45472005-11-08 Frank Ch. Eigler <fche@redhat.com>
4548
4549 * translate.cxx (c_unparser::visit_foreach_loop): With PR 1275
4550 done, add back read lock around foreach loop. Add a write lock
4551 around preceding sort operation. Leave a race condition window. :-(
4552
28776e58
FCE
45532005-11-08 Frank Ch. Eigler <fche@redhat.com>
4554
4555 * translate.cxx (mapvar::exists): Correct some more.
4556
1dca31ba
FCE
45572005-11-08 Frank Ch. Eigler <fche@redhat.com>
4558
4559 Patch from "Mao, Bibo" <bibo.mao@intel.com>
4560 * translate.cxx (mapvar::exists): Correct 64-bit type mismatch.
4561
f75abd8e
FCE
45622005-11-08 Frank Ch. Eigler <fche@redhat.com>
4563
4564 * tapsets.cxx (blacklisted_p): Add blacklist for some .return
4565 probes to kludge around bug #1345.
4566 * tapset/system_calls.stp: Add some %( %? %) conditionals to
4567 get closer to using tapset on 2.6.9 kernel.
4568
36f9dd1d
FCE
45692005-11-07 Frank Ch. Eigler <fche@redhat.com>
4570
4571 PR 1828.
4572 * tapsets.cxx (blacklisted_p): New function. Add a few blacklist
4573 entries.
4574 * testsuite/semko/thirtythree.stp: New test.
4575
70d3e104
FCE
45762005-11-07 Frank Ch. Eigler <fche@redhat.com>
4577
4578 * testsuite/buildok/twentytwo.stp: Add another test for PR 1271.
4579
1472a4e1
FCE
45802005-11-04 Frank Ch. Eigler <fche@redhat.com>
4581
4582 * tapsets.cxx (dwarf_derived_probe::emit_registrations): Add
4583 possible kprobe address prechecking logic. Set kretprobes
4584 maxactive to zero.
4585 * translate.cxx (emit_module_init): Set a more helpful default
4586 probe_point value for use in registration errors. Exit properly
4587 after registration failure of probe #0.
4588
f7ad9b04
RM
45892005-11-04 Roland McGrath <roland@redhat.com>
4590
4591 * tapsets.cxx (add_probe_point): Use dwfl_module_relocation_info to
4592 get symbol name when dwfl_module_relocations has the info.
4593
def7de11
RM
45942005-11-03 Roland McGrath <roland@redhat.com>
4595
4596 * tapsets.cxx (add_probe_point): Use explicit test with assignment in
4597 while condition.
4598
703621ae
FCE
45992005-11-03 Frank Ch. Eigler <fche@elastic.org>
4600
4601 PR 1329.
4602 * tapsets.cxx (dwarf_query::add_probe_point): Look up section name
4603 containing given address. Skip request if it came from .init.*.
4604 * testsuite/semko/thirtytwo.stp: New test.
4605
6a39967c
MH
46062005-11-02 Martin Hunt <hunt@redhat.com>
4607
4608 * Makefile.am (EXTRA_DIST): Add session.h.
4609 * Makefile.in: Regenerated.
def7de11 4610
5c742595
FCE
46112005-11-01 Frank Ch. Eigler <fche@elastic.org>
4612
4613 Sound advice from <drepper@redhat.com>:
4614 * configure.ac: Undo last change.
4615 * configure.ac: Unregenerated.
4616 * parse.cxx: Use glibc strverscmp function instead of rpmlib.
4617 * stap.1.in: Update correspondingly.
4618
d23a2349
GH
46192005-11-01 Graydon Hoare <graydon@redhat.com>
4620
4621 * translate.cxx (c_unparser::collect_map_index_types)
4622 (c_unparser::emit_map_type_instantiations)
4623 (c_unparser::visit_arrayindex)
def7de11 4624 (c_unparser::visit_array_in)
d23a2349
GH
4625 (delete_statement_operand_visitor::visit_arrayindex)
4626 (c_unparser_assignment::visit_arrayindex)
4627 (mapvar::*): Update to new runtime map API.
4628
177a8ead
FCE
46292005-11-01 Frank Ch. Eigler <fche@elastic.org>
4630
4631 PR 1425.
4632 * configure.ac: Look for rpm-devel headers and libs.
4633 * configure: Regenerated.
4634 * session.h: New file to contain systemtap_session decl.
4635 * staptree.h: Likewise evict statistics_decl.
4636 * elaborate.h: Corresponding changes.
4637 * main.cxx (usage): Elaborate. Re-enable "-r RELEASE" option.
4638 * parse.cxx (parser): Add systemtap_session& field. Update users.
4639 (scan_pp, eval_pp_conditional): New routines for preprocessing.
4640 (peek, next): Call it.
4641 (lexer::scan): Lex the preprocessor operators.
4642 (parser::parse): Include an extra level of exception catching
4643 for parse errors that occur during recovery.
4644 * parse.h: Corresponding changes.
def7de11 4645 (parse_error): Allow explicit token parameter.
177a8ead
FCE
4646 * stap.1.in: Document preprocessing.
4647 * testsuite/parseok/fourteen.stp: New test.
4648
0174daa3
RM
46492005-10-31 Roland McGrath <roland@redhat.com>
4650
dc272978
RM
4651 * systemtap.spec.in, configure.ac: Version 0.4.2 cooked.
4652 * configure: Regenerated.
4653
0174daa3
RM
4654 * configure.ac: Update libdw test to require 0.116 with dwarf_diecu.
4655 * configure: Regenerated.
4656 * systemtap.spec.in: Update elfutils requirement to 0.116.
4657 * loc2c.c: Dwarf_Loc -> Dwarf_Op.
4658 (location_from_address): dwarf_addrloclists -> dwarf_getlocation_addr.
4659 (c_translate_location): Likewise.
4660 (max_fetch_size): Remove fakeo dwarf_diecu macro.
4661 * tapsets.cxx (dwflpp): Dwarf_Func -> Dwarf_Die;
4662 dwarf_func_name -> dwarf_diename;
4663 dwarf_func_entrypc -> dwarf_entrypc;
4664 dwarf_func_file, dwarf_func_line -> dwarf_decl_file, dwarf_decl_line.
4665
0a44d98e
RM
46662005-10-26 Roland McGrath <roland@redhat.com>
4667
4668 * loc2c.c (max_fetch_size): Default to host pointer size,
4669 while still waiting for new libdw entrypoint.
4670
1dcb36dc
RM
46712005-10-25 Roland McGrath <roland@redhat.com>
4672
4673 PR 1271 cont'd.
4674 * testsuite/buildok/twentytwo.stp: New file.
4675 * testsuite/buildok/twentythree.stp: New file.
4676 * loc2c.c (discontiguify): Add missing ; in output.
4677
57b73400
GH
46782005-10-20 Graydon Hoare <graydon@redhat.com>
4679
4680 PR 917 (incomplete)
4681 * staptree.h (struct statistic_decl): New struct.
4682 (stapfile::stat_decls): New member.
4683
1dcb36dc 4684 * parse.h, parse.cxx
57b73400
GH
4685 (parser::expect_known): Fix typo.
4686 (parser::expect_number): New method.
4687 (parser::parse_global): Parse global statistic_decls.
4688
4689 * elaborate.h (systemtap_session::stat_decls): New member.
4690 * elaborate.cxx (semantic_pass_symbols): Copy per-file stat_decls
4691 to session-wide.
4692 (typeresolution_info::visit_assignment): Detect some semantic stats
4693 errors in type resolution pass.
4694
4695 * translate.cxx (var::sd): New private member.
4696 (var::var): Initialize it.
4697 (var::sdecl): New accessor.
4698 (var::init): Handle stats values.
4699 (mapvar::mapvar): Pass through statistic_decl to var ctor.
4700 (mapvar::get): Test for long explicitly.
4701 (mapvar::set): Likewise.
4702 (mapvar::init): Handle stats values.
4703 (c_unparser::emit_common_header): Remove typedef of stats_t,
4704 include stat.c when necessary.
4705 (mapvar::key_typename): Typo.
4706 (c_unparser::emit_map_type_instantiations): Thinko: value_typename not key_typename.
4707 (c_unparser::c_typename): Implementation typename is "Stat", not "stats_t".
4708 (c_unparser::c_assign): Fix bad error message.
4709 (c_unparser_assignment::c_assignop): Handle operator <<<.
4710 (c_unparser::getvar): Feed session statistic_decl into var.
4711 (c_unparser::getmap): Likewise.
4712 (c_unparser::visit_assignment): Handle operator <<<.
4713 (c_tmpcounter_assignment::visit_symbol): Derive type from rvalue when present.
1dcb36dc 4714 (c_unparser_assignment::visit_symbol)
57b73400
GH
4715 (c_tmpcounter_assignment::visit_arrayindex)
4716 (c_unparser_assignment::load_map_indices): Likewise.
4717 (c_unparser::visit_arrayindex): Likewise, and Prohibit statistic rvalues.
4718 (c_unparser_assignment::visit_arrayindex): Handle operator <<<.
4719
4720 * testsuite/semko/twentyfour.stp:
4721 * testsuite/semko/twentyfive.stp:
4722 * testsuite/semko/twentysix.stp:
4723 * testsuite/semko/twentyseven.stp:
4724 * testsuite/semko/twentyeight.stp:
4725 * testsuite/semko/twentynine.stp:
4726 * testsuite/semko/thirty.stp:
4727 * testsuite/semko/thirtyone.stp: New tests for prohibited statistic contexts.
4728 * testsuite/buildok/twentytwo.stp: New test for legal statistic contexts.
4729
08c68653
TZ
47302005-10-19 Tom Zanussi <zanussi@us.ibm.com>
4731
4732 PR 1194.
4733 * elaborate.h: Move output_file variable into systemtap_session.
4734 * buildrun.cxx (run_pass): Pass output file to stpd if applicable.
4735 * main.cxx (main): Set output_file if -o option specified.
4736
ce3187ac
FCE
47372005-10-18 Frank Ch. Eigler <fche@redhat.com>
4738
4739 PR 1477.
4740 * main.cxx (main): Set PATH and LC_ALL, so
4741 * buildrun.cxx (compile_pass, run_pass): ... and ...
4742 * translate.cxx (emit_symbol_data): ... don't have to.
4743
2508b230
FCE
47442005-10-18 Frank Ch. Eigler <fche@elastic.org>
4745
4746 PR 1482 cont'd.
4747 * translator.cxx (emit_module_init): Set aside a variable for
4748 detailed probe point id.
4749 * tapsets.cxx (emit_registrations): Use it.
4750 (add_probe_point): Correct synthesized probe-point typo.
1dcb36dc 4751
75eaeba7 47522005-10-17 Martin Hunt <hunt@redhat.com>
1dcb36dc 4753
75eaeba7
MH
4754 PR 1482
4755 * tapsets.cxx (emit_registrations): On failure, don't
4756 forget to unregister probe 0;
4757
b4ceace2
FCE
47582005-10-17 Frank Ch. Eigler <fche@elastic.org>
4759
4760 PR 1338.
4761 * parse.cx (parse_probe): Unconditionally visit parse_probe_point.
4762 (parse_probe_point): Accept "*" as component name.
4763 * stapprobes.5.in: Document this.
4764 * elaborate.cxx (derive_probes): Rewrite. Make top-level function.
4765 (match_node::find_and_build): New function to replace
4766 (find_builder): Removed.
4767 (match_key operator <): Correct one nasty typo.
4768 (match_node::bind): Refuse to bind "*" component names.
4769 (derived_probe_builder::build): Remove recursion output param.
4770 (alias_expandion_builder::build): Recurse to derive_probes instead.
4771 * elaborate.h: Corresponding changes.
4772 * tapsets.cxx: Ditto.
4773 (query_cu): Elide prologue finding for uninteresting CUs.
4774 * testsuite/semok/nineteen.stp: New test.
4775 * testsuite/semko/twentythree.stp: New test.
4776 * testsuite/semko/twentyone/two.stp: Fix -p2.
4777
54efe513
GH
47782005-10-17 Graydon Hoare <graydon@redhat.com>
4779
4780 * testsuite/semko/twentyone.stp: Check function doesn't match inline.
1dcb36dc 4781
54efe513
GH
4782 * testsuite/semko/twentytwo.stp: Check inline doesn't match function.
4783
4784 * testsuite/buildok/six.stp: Change "function" to "inline".
4785
4786 * stapprobes.5.in: Describe "inline" probes.
4787
4788 * tapsets.cxx (TOK_INLINE): New token "inline".
1dcb36dc
RM
4789 (dwarf_query::has_inline_str)
4790 (dwarf_query::has_inline_num)
4791 (dwarf_query::inline_str_val)
54efe513 4792 (dwarf_query::inline_num_val): New members.
1dcb36dc 4793 (dwarf_query::dwarf_query): Load new members.
54efe513
GH
4794 (query_dwarf_inline_instance)
4795 (query_dwarf_func)
4796 (query_cu)
4797 (query_module)
4798 (dwarf_derived_probe::add_probe_point)
1dcb36dc
RM
4799 (dwarf_builder::build):
4800 Use inline-related members where appropriate.
54efe513 4801 (dwarf_derived_probe::register_inline_variants): New method.
1dcb36dc 4802 (dwarf_derived_probe::register_function_and_statement_variants):
54efe513
GH
4803 Call it.
4804
a4a2cb6f
RM
48052005-10-14 Roland McGrath <roland@redhat.com>
4806
4807 PR 1271.
4808 * loc2c.c (translate): Set LOC->byte_size in loc_noncontiguous result.
4809 (struct location.address): New member `declare'.
4810 (new_synthetic_loc, translate): Initialize it.
4811 (struct location.type): Add loc_fragment, loc_decl to enum.
4812 (c_emit_location): Emit unadorned code for loc_fragment.
4813 (discontiguify): New function.
4814 (c_translate_fetch, c_translate_store): Call it.
4815 (get_bitfield): New function, broken out of ....
4816 (emit_bitfield): ... here. Function removed.
4817 (declare_noncontig_union): New function.
4818 (max_fetch_size): New function.
4819 (translate_base_fetch): New function, broken out of ...
4820 (c_translate_fetch): ... here. Call it.
4821 Use get_bitfield here, not emit_bitfield.
4822 (c_translate_store): Likewise.
4823 (c_emit_location): Emit declarations first.
4824
4825 * loc2c.c (dwarf_diename_integrate): Function removed.
4826 Change all callers to use dwarf_diename.
4827
4828 * loc2c-test.c (handle_variable): Check for "=" before fetching DIE
4829 from ATTR_MEM.
4830
2117e07f
RM
48312005-10-13 Roland McGrath <roland@redhat.com>
4832
a4a2cb6f
RM
4833 * loc2c.c (c_emit_location): Use final location's used_deref flag too.
4834
4835 * loc2c.c (translate): Pass LOC to alloc_location, not INPUT.
4836
2117e07f
RM
4837 * loc2c-test.c (fail): Print a newline after the error message.
4838
78110925
FCE
48392005-10-10 Frank Ch. Eigler <fche@elastic.org>
4840
59bafbe8
FCE
4841 * elaborate.cxx (match_node::bind): Improve error message.
4842 (register_library_aliases): Catch and verbosify error message.
4843 (semantic_pass): Provide a back-up exception catcher.
4844
48452005-10-10 Frank Ch. Eigler <fche@elastic.org>
1ec582d6 4846
78110925
FCE
4847 PR 1456.
4848 * translate.cxx (c_unparser_assignment): Rename "pre" field to "post",
4849 add blurb to clarify polarity.
4850 (visit_pre/post_crement): Flip passed flag value.
4851
93484556
FCE
48522005-10-07 Frank Ch. Eigler <fche@elastic.org>
4853
4854 PR 1366.
4855 * staptree.h (foreach_loop): Add sort_column, sort_direction fields.
4856 * parse.cxx (parse_foreach_loop): Parse "+"/"-" suffix operators.
4857 * stap.1.in, stapex.5.in: Document them.
4858 * staptree.cxx (foreach_loop print, copy): Propagate them.
4859 * translate.cxx (visit_foreach_loop): Support them.
4860 * testsuite/parseok/fifteen.stp, parseko/thirteen.stp,
4861 buildok/twentyone.stp: Test them.
4862
9f0f2d3f
KS
48632005-10-07 Kevin Stafford <kevinrs@us.ibm.com>
4864
4865 * tapset/system_calls.stp: All 281 syscalls *prototyped*. They
4866 are still untested. Many of the aliases useability are contin-
1ec582d6 4867 gent upon resolution of namely: bz #1295 & bz #1382.
9f0f2d3f 4868
f12b2552
FCE
48692005-10-06 Frank Ch. Eigler <fche@elastic.org>
4870
4871 * stap.1.in: Document -b/-s options.
4872 * main.cxx (usage): Clarify -b/-s blurbs.
4873 * translator.cxx (translate_pass): Handle bulk_mode here instead.
4874
33f88a80
FCE
48752005-10-06 Frank Ch. Eigler <fche@elastic.org>
4876
4877 PR 1332.
4878 * translate.cxx (emit_symbol_data): New function to transcribe
4879 a processed address->symbol lookup table, based upon /proc/kallsyms.
4880
16d8de1b
TZ
48812005-10-05 Tom Zanussi <zanussi@us.ibm.com>
4882
4883 * buildrun.cxx (run_pass): Add bulk/buffer_size flags to flags
4884 passed to stpd.
f12b2552
FCE
4885 * elaborate.h (systemtap_session): Add bulk/buffer_size flags.
4886 * main.cxx (usage,main): Add -b (bulk), -s (buffer_size) options.
16d8de1b
TZ
4887 processing.
4888
e8fbc5e8
GH
48892005-10-04 Graydon Hoare <graydon@redhat.com>
4890
4891 PR 1131.
4892 * tapsets.cxx
4893 (target_variable_flavour_calculating_visitor::visit_target_symbol)
1ec582d6 4894 (var_expanding_copy_visitor::visit_target_symbol):
e8fbc5e8
GH
4895 Require guru mode for writing to target vars.
4896 * testsuite/buildok/twenty.stp: Test writing to target vars.
4897
0ce64fb8
FCE
48982005-10-01 Frank Ch. Eigler <fche@elastic.org>
4899
4900 * tapsets.cxx (get_module_dwarf): Add "required" parameter, which
4901 throws an exception if debuginfo is not found.
4902 (focus_on_module_containing_global_address): Tolerate miss.
4903 (query_kernel_exists): New function to test for "kernel" module in
4904 dwfl_getmodules() result set.
4905 (dwarf_builder::build): Call it if appropriate.
4906
e57b735a
GH
49072005-09-30 Graydon Hoare <graydon@redhat.com>
4908
4909 PR 1131.
4910 * tapsets.cxx (dwflpp::find_variable_and_frame_base)
4911 (dwflpp::translate_components)
4912 (dwflpp::resolve_unqualified_inner_typedie)
4913 (dwflpp::translate_final_fetch_or_store): New functions.
4914 (dwflpp::literal_stmt_for_local): Factor a bit.
1ec582d6 4915 (variable_flavour_calculating_visitor::visit_target_symbol):
e57b735a 4916 Don't fault on lvalue, just collect an extra char.
1ec582d6 4917 (var_expanding_copy_visitor::target_symbol_setter_functioncalls):
e57b735a
GH
4918 New member.
4919 (var_expanding_copy_visitor::visit_assignment): New method.
4920 (var_expanding_copy_visitor::visit_target_symbol): Permit lvalues.
4921
325be37a
FCE
49222005-09-30 Frank Ch. Eigler <fche@elastic.org>
4923
4924 * tapset/system_calls.stp (*_str): Simplified boolean test logic
4925 throughout, fixed some typos.
4926
ed10c639
FCE
49272005-09-28 Frank Ch. Eigler <fche@elastic.org>
4928
4929 PR 1182.
4930 * main.cxx (main): Support -D macro-setting option.
4931 * stap.1.in: Document it and related macros.
4932 * buildrun.cxx (compile_pass): Emit macro definitions.
4933 * translate.cxx (translate_pass): Guard limit macros with #ifdef.
4934 Eliminate MAXCONCURRENCY macro.
4935 * elaborate.h (systemtap_session): Add "macros" field.
4936 * parse.cxx (parse_if_statement): Clear "elseblock" if needed.
4937
ab55a5ae
FCE
49382005-09-27 Frank Ch. Eigler <fche@elastic.org>
4939
4940 * tapsets.cxx (query_cu_containing_global_address): Tolerate
4941 way out of range addresses that result in null cudie pointers.
4942
dc511862
FCE
49432005-09-27 Frank Ch. Eigler <fche@elastic.org>
4944
ff007aa3
FCE
4945 PR 1368.
4946 * translate.cxx (emit_common_header): Move some MAX* definitions out ...
4947 (translate_pass): ... to here. Fix probe_start API impedance mismatch.
4948 (emit_module_init, exit): Tolerate registration errors, such as absence
4949 of kretprobes support.
4950
49512005-09-27 Frank Ch. Eigler <fche@elastic.org>
26093a09 4952
dc511862
FCE
4953 PR 1311.
4954 * tapsets.cxx (target_variable_flavour_calculating_visitor::
4955 visit_target_symbol): Print verbose error.
4956 (var_expanding_copy_visitor::visit_target_symbol): Throw
4957 simple error.
1ec582d6 4958
ab4ff75b
FCE
49592005-09-26 Frank Ch. Eigler <fche@elastic.org>
4960
4961 * stapfuncs.5.in: Extend errno_str verbiage.
4962 * tapset/errno.stp: Canonicalize script code slightly.
4963
7d71e1d5
FCE
49642005-09-26 Frank Ch. Eigler <fche@elastic.org>
4965
4966 PR 1295.
4967 * tapsets.cxx (resolve_prologue_endings2): Try another heuristic
4968 for end-of-prologue.
4969
2930abc7
FCE
49702005-09-22 Graydon Hoare <graydon@redhat.com>,
4971 Frank Ch. Eigler <fche@elastic.org>
4972
4973 PR 1330.
4974 * tapsets.cxx (dwarf_derived_probe): Allow multiple probe_point
4975 locations per derived_probe.
4976 (dwarf_query): Add probe "flavour" concept, to reuse probe bodies for
4977 identical flavours across wildcards.
4978 (dwarf::emit_registrations, emit_deregistrations, emit_probe_entries):
4979 Reorganize.
4980 * staptree (probe::printsig): Put multiple locations on separate lines.
4981
07885a73
WC
49822005-09-22 Will Cohen <wcohen@redhat.com>
4983
4984 * stap.1.in: Correct sys_read alias example.
4985
acc5b5e6
FCE
49862005-09-19 Frank Ch. Eigler <fche@redhat.com>
4987
4988 * tapsets.cxx (*::emit_probe_entries): Handle busy-count correctly
4989 upon contention.
4990
2340b076
GH
49912005-09-14 Graydon Hoare <graydon@redhat.com>
4992
4993 PR 1260
4994 * tapsets.cxx (dwflpp::resolve_prologue_endings): Correct logic
4995 error triggered by consecutive function-beginning line records.
4996
3eb77821
FCE
49972005-09-14 Frank Ch. Eigler <fche@elastic.org>
4998
4999 PR 1344
5000 * translate.cxx: Call _stp_map_clear for "delete ARRAY" statement.
5001
66bb48fd
RM
50022005-09-14 Roland McGrath <roland@redhat.com>
5003
5004 * systemtap.spec.in: Version 0.4.1 cooked.
3eb77821 5005 Build runpath into elfutils libs too.
5dfa7da3 5006
6d7ba95b
FCE
50072005-09-14 Frank Ch. Eigler <fche@elastic.org>
5008
5009 PR 1257
5010 * Makefile.am (AM_CFLAGS): Add -fexceptions.
5011 * loc2c.c (c_translate_location): Invoke *fail properly.
5012 * Makefile.in: Regenerated.
5013
b6581717
GH
50142005-09-13 Graydon Hoare <graydon@redhat.com>
5015
5016 PR 1260
5017 * tapsets.cxx (func_info::func_info): Initialize fields.
5018 (inline_instance_info::inline_instance_info): Likewise.
5019 (query_inline_instance_info): Add try-catch block.
5020 (query_func_info): Likewise, and fault when missing prologue-end.
5021 (query_dwarf_func): Fault when missing entrypc.
5022
bf9bd203
FCE
50232005-09-12 Frank Ch. Eigler <fche@elastic.org>
5024
5025 PR 1335
5026 * translate.cxx (c_tmpcounter::visit_functioncall): Correct
5027 recursion sequence.
5028 * testsuite/buildok/nineteen.stp: New test case.
5029
114ffac2
GH
50302005-09-12 Graydon Hoare <graydon@redhat.com>
5031
5032 PR 1306
5033 * tapsets.cxx (dwflpp::iterate_over_srcfile_lines): Fix two
5034 off-by-one errors in previous change.
5035
897820ca
GH
50362005-09-12 Graydon Hoare <graydon@redhat.com>
5037
5038 PR 1306
5039 * tapsets.cxx (dwflpp::has_single_line_record): New function.
5040 (dwflpp::iterate_over_srcfile_lines): Throw when user requests
5041 single statement line with multiple records (and provide advice).
5042 (query_cu): Adjust call to match.
5043 (query_srcfile_line): Fix indentation.
5044
334d400c
FCE
50452005-09-10 Frank Ch. Eigler <fche@elastic.org>
5046
5047 * Makefile.am, runtest.sh: Use a "testresuilt/" directory in build
5048 tree rather than overloading "testsuite/".
5049 * TODO: Removed obsoleted file.
5050 * Makefile.in: Regenerated.
5051
f0ae509f
MH
50522005-09-07 Martin Hunt <hunt@redhat.com>
5053
5054 * stap.1.in: Document current "-c" and "-x" options.
5055
9ae6172f
FCE
50562005-09-07 Frank Ch. Eigler <fche@elastic.org>
5057
5058 * systemtap.spec.in: Remove kernel-debuginfo dependency.
5059
ae24723e
FCE
50602005-09-07 Frank Ch. Eigler <fche@redhat.com>
5061
5062 * main.cxx (main): Choose getpid()-based module names.
5063 * tapsets.cxx: Make timer.jiffies' use of task_pt_regs __i386__-only.
5064
57f26971
FCE
50652005-09-07 Frank Ch. Eigler <fche@redhat.com>
5066
5067 * stap.1.in: Oops, && and || do short-circuit.
5068
ff17e830
FCE
50692005-09-06 Frank Ch. Eigler <fche@elastic.org>
5070
5071 * stap.1.in: Clarify absence of short-circuiting in && and ||.
5072 * translate.cxx (emit_function): Improve "array locals" message.
5073 * tapset/timestamp.stp: Add gettimeofday_us function. Correct
5074 arithmetic typing in other functions.
5075 * stapfuncs.5.in: Document new function.
5076
5d64f5e7
MH
50772005-09-06 Martin Hunt <hunt@redhat.com>
5078
5079 * systemtap.spec.in: Bump elfutils_version to .115.
5080
ae101746
RM
50812005-09-05 Roland McGrath <roland@redhat.com>
5082
5083 * loc2c.h: Comment fix.
5084
bcc12710
FCE
50852005-09-06 Frank Ch. Eigler <fche@elastic.org>
5086
5087 * configure.ac: Require elfutils 0.115+.
5088 * tapsets.cxx: Restore graydon's PR 1244 code.
5089 * testsuite/buildok/eighteen.stp: Correct typing.
5090 * configure: Regenerated.
5091
4c5ff1bb
MH
50922005-09-06 Martin Hunt <hunt@redhat.com>
5093
5094 * tapset/context.stp: Add function target().
5095 * stapfuncs.5.in (target): Document it.
5096 * elaborate.h (struct systemtap_session): Add cmd and target_pid to
5097 the struct.
11eb4a88 5098 * main.cxx (usage): Add descriptions of "-c" and "-x" options.
4c5ff1bb
MH
5099 (main): Set s.cmd and s.target_pid.
5100 * buildrun.cxx (stringify): Copy this utility func here too.
5101 (run_pass): Add new options to set cmd and pid to the stpd
5102 command line.
5103
2c89cb8b
FCE
51042005-09-06 Frank Ch. Eigler <fche@redhat.com>
5105
5106 * tapsets.cxx (emit_probe_entries): Disable fault_handler for now.
5107
499cf740
FCE
51082005-09-05 Frank Ch. Eigler <fche@elastic.org>
5109
5110 PR 1289
5111 * translate.cxx (lex_cast_qstring): Correct "cast" of object
5112 to string containing more than one word.
5113 * tapset.cxx (lex_cast_qstring): Ditto.
5114 (dwarf_derived_module::emit_probe_entries): Emit and use
5115 a generic fault_handler.
5116
cc9ee605
FCE
51172005-09-05 Frank Ch. Eigler <fche@elastic.org>
5118
5119 PR 1172.
5120 * staptree.h, staptree.cxx: Make all ::print*(), operator<<
5121 functions take const staptree objects.
5122 (literal_string::print): \-prefix double-quotes.
5123 * translate.cxx (emit_common_header): Add context probe_point field.
5124 Switch to atomic_t busy flags.
5125 (emit_module_exit): Use atomic operations for busy flag.
5126 (visit_*): Use lex_cast_qstring for last_stmt strings.
499cf740 5127 * tapsets.cxx (lex_cast_qstring): New function.
cc9ee605
FCE
5128 (*::emit_probe_entries): Populate probe_point. Use atomic operations
5129 for busy flag.
5130 * tapset/context.stp (pp): New function.
5131 * stapfuncs.5.in: Document it.
5132 * testsuite/buildok/context_test.stp: Test it.
5133
f86db5a7
FCE
51342005-09-04 Frank Ch. Eigler <fche@elastic.org>
5135
5136 * translate.cxx (visit_literal_string): \-prefix double-quotes.
5137
6c100036
MH
51382005-09-04 Martin Hunt <hunt@redhat.com>
5139
5140 * testsuite/buildok/context_test.stp: New test.
5141 * tapset/logging.stp (log): Call _stp_printf().
5142 * stapfuncs.5.in: Add contextinfo funcs.
5143 * tapset/context.stp: Minor cleanup.
5144
f9eba66e
FCE
51452005-09-03 Frank Ch. Eigler <fche@elastic.org>
5146
5147 PR 1187 prime
5148 * tapset.cxx (literal_stmt_for_local): Don't automgaically copy
5149 target char*'s to systemtap strings.
5150 * tapset/conversions.stp (user_string, kernel_string): New functions.
5151 * stapfuncs.5.in: Document new functions.
5152
6a505121
FCE
51532005-09-03 Frank Ch. Eigler <fche@elastic.org>
5154
5155 PR 1292, by popular request.
5156 * parse.cxx (parse_functiondecl): Allow optional value/param type
5157 declarations.
5158 * stap.1.in: Document this.
5159 * tapset/*.stp: Convert most functions accordingly.
5160 * testsuite/parseok/twelve.stp, semok/seven.stp,
5161 semko/twenty.stp: Test this.
5162
d9e1dc7a
FCE
51632005-09-02 Frank Ch. Eigler <fche@redhat.com>
5164
5165 * translate.cxx (varlock): Use trylock only for write locks.
5166 (translate_pass): Remove read_trylock macro hack.
5167 (visit_foreach_loop): Remove protective read lock, until PR 1275.
5168 (visit_*): Added many more "last_stmt"-setting expressions in the
5169 output, to improve last_error message locality.
5170
4d2339a1
MH
51712005-09-02 Martin Hunt <hunt@redhat.com>
5172
5173 * tapset/logging.stp: Make log() be same as print().
5174
6e95311e
FCE
51752005-09-02 Frank Ch. Eigler <fche@elastic.org>
5176
5177 * tapsets.cxx: Temporarily rolled back graydon's changes.
5178
a5a5398e
FCE
51792005-09-02 Frank Ch. Eigler <fche@elastic.org>
5180
5181 * tapset/*.stp: Renamed several files to simplify names.
5182
86333c52
GH
51832005-09-01 Graydon Hoare <graydon@redhat.com>
5184
5185 PR systemtap/1244
5186 * testsuite/buildok/eighteen.stp: New test.
ae101746 5187 * tapsets.cxx (dwflpp::literal_stmt_for_local)
86333c52
GH
5188 (query_statement, query_inline_instance_info)
5189 (query_func_info, query_srcfile_line, query_cu)
5190 (var_expanding_copy_visitor, visit_target_symbol)
5191 (dwarf_derived_probe): Fix 1244.
5192
cd402287
MH
51932005-09-01 Martin Hunt <hunt@redhat.com>
5194
1e36c83b
MH
5195 * tapset/builtin_logging.stp: Add print.
5196
e7812b1c
MH
5197 * tapset/context.stp: New file. First cut at some
5198 context info.
5199
52002005-09-01 Martin Hunt <hunt@redhat.com>
ae101746 5201
cd402287
MH
5202 * translate.cxx (emit_probe): Add a call to _stp_print_flush
5203 at the end of each probe.
5204 (translate_pass): Define STP_NUM_STRINGS to be 1 for
5205 a scratch string. Include current.c and stack.c. Don't
5206 define KALLSYMS_LOOKUP_NAME or KALLSYMS_LOOKUP. Remove
ae101746 5207 references to next_fmt() and stp_dbug().
cd402287 5208
e7a012f0
GH
52092005-08-31 Graydon Hoare <graydon@redhat.com>
5210
5211 PR systemtap/1258
ae101746
RM
5212 * tapsets.cxx (dwflpp::literal_stmt_for_local):
5213 Support DW_TAG_enumeration_type tag as synonymous with
e7a012f0
GH
5214 DW_TAG_base_type.
5215 * loc2c.c (base_byte_size): Likewise.
5216 * testsuite/buildok/seven.stp: Adjust to work on UP kernels.
5217
6315bd76
GH
52182005-08-31 Graydon Hoare <graydon@redhat.com>
5219
5220 * tapsets.cxx (dwflpp::iterate_over_srcfile_lines): Correct segv
5221 reported in PR 1270.
5222
f9f77dce
FCE
52232005-08-31 Frank Ch. Eigler <fche@redhat.com>
5224
5225 * translate.cxx (visit_array_in, visit_arrayindex): Use write locks
5226 even for array reads, until PR 1275.
5227 (translate_pass): Add read_trylock -> write_trylock escalation.
5228
3cf0e05e
RM
52292005-08-30 Roland McGrath <roland@redhat.com>
5230
5231 * Makefile.am (install-data-local): Use mkdir -p, not -mkdir.
5232 * Makefile.in: Regenerated.
5233
246b383e
GH
52342005-08-30 Graydon Hoare <graydon@redhat.com>
5235
5236 * tapsets.cxx (dwflpp::literal_stmt_for_local): Handle dwarf
5237 pointer-to-1-byte-means-char case (found in PR 1187)
5238 * parse.cxx (parse_symbol): Eliminate use of "." from target
5239 symbol parser, conflicting with string concatenation operator.
3cf0e05e 5240 * staptree.h (target_symbol::component_type) Eliminate
246b383e
GH
5241 comp_struct_pointer_member, since . and -> are considered the
5242 same now.
5243 * staptree.cxx (target_symbol::print): Likewise.
5244 * testsuite/buildok/seventeen.stp: Test solution on PR 1191.
5245 * testsuite/buildok/six.stp: Test working portion of PR 1155.
5246 * testsuite/semko/nineteen.stp: Unresolved portion of PR 1155.
5247
d7f37943
FCE
52482005-08-30 Frank Ch. Eigler <fche@elastic.org>
5249
5250 PR systemtap/1268
5251 * translator (varlock): Add deadlock detection code.
5252 (emit_common_header): Add a new MAXTRYLOCK configuration macro.
5253
4cd232e4
GH
52542005-08-29 Graydon Hoare <graydon@redhat.com>
5255
5256 PR translator/1265
3cf0e05e 5257 * tapsets.cxx
4cd232e4
GH
5258 (func_info::decl_file)
5259 (func_info::decl_line)
5260 (inline_instance_info::decl_file)
5261 (inline_instance_info::decl_line): New fields.
5262 (dwflpp::function_srcfile): Remove.
5263 (dwflpp::function_file): Add.
5264 (dwflpp::function_line): Add.
5265 (dwarf_derived_probe::dwarf_derived_probe): Update.
5266 (query_statement): Pass func, file, line through.
5267 (query_inline_instance_info): Likewise.
5268 (query_func_info): Likewise.
3cf0e05e 5269 (query_srcfile_line): Query statement lines if
4cd232e4
GH
5270 statement_str exists, rather than *_info.
5271 (query_dwarf_inline_instance): Extract file and line.
5272 (query_dwarf_func): Likewise.
5273 (query_cu): Pass empty func, file, line, for address-based
5274 queries.
5275
f76466b9
FCE
52762005-08-29 Frank Ch. Eigler <fche@redhat.com>
5277
5278 * runtest.sh: Tolerate relative $SRCDIR.
5279
ba4a90fd
FCE
52802005-08-29 Frank Ch. Eigler <fche@redhat.com>
5281
5282 * stapprobes.5.in, stapfuncs.5.in, stapex.5.in: New man pages.
5283 * stap.1.in: Moved some content out.
5284 * Makefile.am (man_MANS): Add new man pages.
5285 * configure.ac (AC_CONFIG_FILES): Add them.
5286 * systemtap.spec.in: Package them.
5287 * Makefile.in, configure: Regenerated.
5288 * buildrun.cxx (run_pass): Pass "-r" to stpd.
5289 * translate.cxx (emit_common_header): Wrap try/catch around
5290 variable decls, to improve exception particularity.
5291 (visit_literal_number): Emit as unsigned literal, which is
5292 actually a subtle correctness issue.
5293
66d284f4
FCE
52942005-08-28 Frank Ch. Eigler <fche@redhat.com>
5295
c195ad93 5296 * tapsets.cxx (visit_target): Make target variable exceptions
66d284f4
FCE
5297 more informative.
5298 (literal_stmt_for_local): Improve bad-type exception message.
5299 * translate.cxx (emit_module_init): Include probe point in comments.
5300
b5fe05bc
RM
53012005-08-27 Roland McGrath <roland@redhat.com>
5302
19feb39f
RM
5303 * loc2c-test.c (print_type): New function.
5304 (print_vars): Use it.
5305
b5fe05bc
RM
5306 * loc2c-test.c (paddr, print_vars): New functions.
5307 (main): If given no variable name argument, print out variables.
5308
819ddbe6
GH
53092005-08-26 Graydon Hoare <graydon@redhat.com>
5310
5311 * translate.cxx: Revert tmp initialization changes.
5312
7d46afb8
GH
53132005-08-26 Graydon Hoare <graydon@redhat.com>
5314
5315 * parse.cxx (scan): Preserve basic C-ish escapes.
5316 * translate.cxx (c_tmpcounter::declaring): New flag.
5317 (c_tmpcounter::declare_or_init): New helper method.
5318 (c_tmpcounter::visit_*): Use declare_or_init.
5319 (c_unparser::emit_function): Run a tmpcounter to initialize tmps.
5320 (c_unparser::emit_probe): Likewise.
5321 (c_unparser::c_strcpy): Use strlcpy.
5322 (c_unparser::c_strcat): Use strlcat.
5323
99af4508 53242005-08-25 Roland McGrath <roland@redhat.com>
0cbdf6cd 5325
99af4508
RM
5326 * Makefile.am (EXTRA_DIST): List .h files explicitly.
5327 Automake really does not like wildcards.
0cbdf6cd
FCE
5328 * Makefile.in: Regenerated.
5329
99af4508 53302005-08-25 Frank Ch. Eigler <fche@redhat.com>
2b2a4014 5331
99af4508 5332 * Makefile.am (docs): Removed target.
a7307df8 5333 * Makefile.in: Regenerated.
2b2a4014 5334
fdfbe4f7
GH
53352005-08-24 Graydon Hoare <graydon@redhat.com>
5336
5337 * tapsets.cxx (dwflpp::literal_stmt_for_local): Fetch pointer types,
5338 array types, strings, from target.
5339
a390a7bb
RM
53402005-08-24 Roland McGrath <roland@redhat.com>
5341
5342 * loc2c-test.c (handle_variable): Iterate on const_type/volatile_type.
5343
7e1279ea
FCE
53442005-08-24 Frank Ch. Eigler <fche@elastic.org>
5345
5346 * configure.ac: Require elfutils 0.114.
5347 * tapsets.cxx: Brought back graydon's changes.
5348 * configure: Regenerated.
5349
cfb91814
RM
53502005-08-24 Roland McGrath <roland@redhat.com>
5351
5352 * systemtap.spec.in: Update elfutils requirement.
5353
4a88f72d
FCE
53542005-08-24 Frank Ch. Eigler <fche@elastic.org>
5355
5356 * translate.cxx (emit_global, emit_module_init): Use 2.6.9-compatible
5357 rwlock initialization.
5358
bb788f9f
FCE
53592005-08-24 Frank Ch. Eigler <fche@elastic.org>
5360
5361 * tapsets.cxx (*::emit_probe_entries): Treat NULL and "" last_errors
5362 both as clean early returns, not errors.
5363 * translate.cxx: Revamp last_error handling logic. Remove all
5364 "goto out" paths from expression context.
5365 (visit_statement): Handle last_error exit one nesting level at a time.
5366 (visit_return_statement, visit_functioncall): Set/reset last_error="".
5367 (c_tmpcounter::visit_for_loop): New routine.
5368 (c_unparser::visit_foreach, visit_for_loop): Rewrite to properly
5369 support continue/breaks, non-local exits, (foreach) locks.
5370 (emit_global): Emit lock variable.
5371 (varlock ctor, dtor): Lock/unlock global variable.
5372 (varlock_w, varlock_r): New concrete subclasses. Update all users.
5373 * tapset/builtin_logging.stp (exit): Don't set last_error.
5374 * src/testsuite/buildok/sixteen.stp: New test.
cfb91814 5375
bb788f9f
FCE
5376 * tapsets.cxx: Temporarily rolled back graydon's changes.
5377
4fa7b22b
GH
53782005-08-23 Graydon Hoare <graydon@redhat.com>
5379
5380 * tapsets.cxx: Re-implement dwarf probe-pattern resolution.
5381
df8fadee
FCE
53822005-08-22 Frank Ch. Eigler <fche@elastic.org>
5383
5384 PR systemtap/1134
5385 * elaborate.h (module_fds): New member in systemtap_session.
5386 * tapsets.cxx (dwarf_derived_probe ctor): Open /sys/module/$MOD/.text
5387 for the duration of a systemtap session, to lock module in memory.
5388
5e309481
FCE
53892005-08-21 Frank Ch. Eigler <fche@redhat.com>
5390
5391 PR systemtap/1195, systemtap/1193
5392 * elaborate.cxx (alias_expansion_builder): Set new block token.
5393 * parse.cxx (parse_symbol): Set new target_symbol token.
5394 * runtest.sh: Store more pertinent failure data.
5395 * tapsets.cxx (emit_probe_entries): Rewrite error-handling path.
5396 * translate.cxx (emit_common_header): Goodbye errorcount, hello
5397 last_error & last_stmt.
5398 (c_unparser::visit_statement): New "header" for all other stmts.
5399 (c_assignop, visit_binary_expression): Adapt to last_error.
5400 * tapset/builtin_logging.stp: Adapt to last_error.
5401
35e7735c
FCE
54022005-08-19 Frank Ch. Eigler <fche@elastic.org>
5403
5404 PR systemtap/1213
5405 * translate.cxx (visit_if_statement): Translate else arms.
cfb91814 5406
98afd80e
FCE
54072005-08-19 Frank Ch. Eigler <fche@elastic.org>
5408
5409 PR systemtap/1209
98afd80e
FCE
5410 * elaborate.cxx (derived_probe_builder): Add get_param function.
5411 * elaborate.h: Declare them.
5412 * tapsets.cxx (dwarf_query::get_*_param): Call them.
5413 (timer_derived_probe, timer_builder): New classes.
5414 (register_standard_tapsets): Register timer.jiffies(N) and friend.
5415 * translate.cxx (translate_pass): #include <linux/timers.h>.
5416 * stap.1.in: Document timer.jiffies(N) probe points.
5417 * testsuite/buildok/fourteen.stp: New test.
5418
37908791
FCE
54192005-08-19 Frank Ch. Eigler <fche@elastic.org>
5420
5421 * elaborate.cxx (find_var): Remove $pid/$tid builtin logic.
5422
2971b830
MH
54232005-08-19 Martin Hunt <hunt@redhat.com>
5424
5425 * stp_check.in: Remove stp-control.
5426
65c919e2
RM
54272005-08-18 Roland McGrath <roland@redhat.com>
5428
5429 * loc2c.c (c_translate_addressof): Take TYPEDIE instead of TYPEATTR.
5430 * loc2c.h: Update decl.
5431 * loc2c-test.c (handle_variable): Handle DW_TAG_pointer_type target
5432 for fetch.
5433
75a163d3
WC
54342005-08-18 Will Cohen <wcohen@redhat.com>
5435
5436 * stp_check.in: See if relayfs available filesystem.
5437
cfb03941
RM
54382005-08-18 Roland McGrath <roland@redhat.com>
5439
5440 * loc2c.c (struct location): New member `emit_address'.
5441 (alloc_location): Initialize new member from ORIGIN.
5442 (location_from_address): New argument EMIT_ADDRESS.
5443 Initialize new member.
5444 (translate): Use LOC->emit_address hook to format DW_OP_addr constant.
5445 (location_relative): Die if DW_OP_addr is used.
5446 (default_emit_address): New function.
5447 (c_translate_location): New argument EMIT_ADDRESS, pass it down.
5448 Use default_emit_address if argument is null.
5449 * loc2c.h: Update decl.
5450 * loc2c-test.c (handle_variable): Update caller.
5451 * tapsets.cxx (dwflpp::literal_stmt_for_local): Update caller.
5452 (dwflpp::loc2c_emit_address): New static method.
5453
bcde33fb
RM
54542005-08-17 Roland McGrath <roland@redhat.com>
5455
52e9954e
RM
5456 PR systemtap/1197
5457 * loc2c.c (struct location): New members `fail', `fail_arg'.
5458 (alloc_location): New function. Initialize those members.
5459 (new_synthetic_loc, translate): Use that instead of obstack_alloc.
5460 (location_from_address, location_relative): Likewise.
5461 (FAIL): New macro. Use it everywhere in place of `error'.
5462 (c_translate_location): Take new args FAIL, FAIL_ARG.
5463 * loc2c.h: Update declaration.
5464 * loc2c-test.c (fail): New function.
5465 (handle_variable): Pass it to c_translate_location.
5466 * tapsets.cxx (dwflpp::loc2c_error): New static method.
5467 (dwflpp::literal_stmt_for_local): Pass it to to c_translate_location.
5468
bcde33fb
RM
5469 PR systemtap/1205, systemtap/1206
5470 * loc2c.c (c_translate_fetch): Take TYPEDIE instead of TYPEATTR.
5471 (c_translate_store): Likewise.
5472 * loc2c.h: Update decls.
5473 * loc2c-test.c (handle_variable): Update callers.
5474 Look up type, resolve typedefs, and check that it's DW_TAG_base_type.
5475 * tapsets.cxx (dwflpp::literal_stmt_for_local): Likewise.
5476
5477 * loc2c.c (base_byte_size): Add assert on expected DIE tag.
5478 (c_translate_array, c_translate_pointer): Likewise.
5479 * loc2c.h: Amend comments to explicitly state type DIE tags expected.
5480
5481 * loc2c.c: #include "loc2c.h".
5482
db520b00
FCE
54832005-08-16 Frank Ch. Eigler <fche@elastic.org>
5484
5485 PR systemtap/1180
5486 * tapsets.cxx (*): Add more verbose-predicatation to informative
5487 messages. Correct more hex/dec ostream mismatches.
5488 (query_function): Use entry/querypc, not prologue-end, for
5489 function().return and .statement() probe points.
5490 (dwarf_derived_probe ctor): Reorganize function/statement
5491 probe point regeneration.
5492
ae56fddd
FCE
54932005-08-16 Frank Ch. Eigler <fche@elastic.org>
5494
5495 * main.cxx: Don't print library parse trees if last_pass=1.
5496
7c4d1d0d
RM
54972005-08-14 Roland McGrath <roland@redhat.com>
5498
5499 * systemtap.spec.in: Update elfutils_version requirement to 0.113;
5500 restore bundled_elfutils setting to 1.
5501
51bf37c3
GH
55022005-08-12 Graydon Hoare <graydon@redhat.com>
5503
5504 * translate.cxx (c_tmpcounter::visit_array_in): Implement.
5505 (c_unparser::visit_array_in): Likewise.
5506 (mapvar::exists): New method.
5507
3a20432b
FCE
55082005-08-12 Frank Ch. Eigler <fche@elastic.org>
5509
5510 PR systemtap/1122 et alii
5511 * parse.cxx (parse_literal): Parse and range-limit 64-bit numbers.
5512 (parse_unary): Correct precedence glitch.
5513 * staptree.h (literal_number): Store an int64_t.
5514 * staptree.cxx: Corresponding changes.
5515 * translate.cxx (check_dbz): Remove - insufficient.
5516 (emit_function): Define CONTEXT macro sibling for THIS.
5517 (c_typename): pe_long -> int64_t.
5518 (visit_literal_number): Format literal rigorously and uglily.
5519 (c_assignop, visit_binary_expression): Handle div/mod via new
5520 helper functions in runtime.
5521 * tapset/builtin_logging.stp: Add error, exit builtins.
5522 * testsuite/buildok/ten,eleven.stp: New tests.
5523 * testsuite/parse{ko,ok}/six.stp: Modify for larger numbers.
5524 * testsuite/transok/one.stp: Add more ";"s, maybe unnecessarily.
5525
ba3f9e9e
FCE
55262005-08-11 Frank Ch. Eigler <fche@elastic.org>
5527
5528 * systemtap.spec.in: Tweak to turn into fedora-flavoured spec.
5529 Don't build/install runtime docs.
5530
4d4f412b
FCE
55312005-08-11 Frank Ch. Eigler <fche@elastic.org>
5532
5533 * Makefile.am (uninstall-local): New target.
5534 * Makefile.in: Regenerate.
5535
0d155048
FCE
55362005-08-11 Frank Ch. Eigler <fche@elastic.org>
5537
5538 * translate.cxx (emit_function): Add an extra { } around the
5539 function body visitation.
5540 * tapset/timestamp_functions.stp: New file.
5541 * tapset/builtin_conversions.stp: Aggregated from [hex]string.
5542 * tapset/builtin_logging.stp: Aggregated from log/warn/printk.
5543
59ff2773
FCE
55442005-08-11 Frank Ch. Eigler <fche@elastic.org>
5545
5546 * tapsets.cxx: Tweak hex/decimal printing for consistency.
5547 (emit_registrations): Remove module-specific code, anticipating
5548 that libelf gives us run-time addresses already.
5549
a12eba57
RM
55502005-08-10 Roland McGrath <roland@redhat.com>
5551
5552 * loc2c.c (emit_base_store): New function.
5553 (emit_bitfield): Rewritten to handle stores, change parameters.
5554 (c_translate_fetch): Update caller.
5555 (c_translate_store): New function.
a59debd7 5556 * loc2c.h: Declare it.
a12eba57
RM
5557 * loc2c-test.c (handle_variable): Grok "=" last argument to do a store.
5558
5559 * loc2c.c (c_translate_location): Increment INDENT.
5560 (c_translate_pointer): Likewise.
5561 (emit_loc_value): Increment INDENT after emit_header.
5562
91eefb1c
GH
55632005-08-10 Graydon Hoare <graydon@redhat.com>
5564
5565 * tapsets.cxx (dwflpp::literal_stmt_for_local): Copy code from
5566 loc2c-test to implement target member variable access.
5567
c239d28c
GH
55682005-08-10 Graydon Hoare <graydon@redhat.com>
5569
a12eba57 5570 * tapsets.cxx
c239d28c
GH
5571 (dwflpp::global_addr_of_line_in_cu): Implement next-line heuristic.
5572 (dwarf_query::get_number_param): Dwarf_Addr variant.
5573 (query_cu): Add line-selecting variant for function iteration.
5574
31966088
FCE
55752005-08-10 Frank Ch. Eigler <fche@elastic.org>
5576
5577 PR translator/1186
5578 * elaborate.cxx (resolve_2types): Accept a flag to tolerate unresolved
5579 expression types.
5580 (visit_functioncall): Call it thusly.
5581 * translate.cxx (emit_function): Tolerate void functions.
5582 * stap.1.in: Document possibility of void functions.
5583 * tapset/builtin_{log,printk,warn}.stp: Make these void functions.
5584 * testsuite/buildok/nine.stp, semok/eighteen.stp: New tests.
5585
c0de7a8d
FCE
55862005-08-10 Frank Ch. Eigler <fche@elastic.org>
5587
5588 * tapsets.cxx: Correct hex/decimal misformatting of verbose messages.
5589 * main.cxx: Add formal "-h" and "-V" options.
5590 * stap.1.in: Document them.
5591
b5d77020
FCE
55922005-08-10 Frank Ch. Eigler <fche@elastic.org>
5593
5594 * tapsets.cxx: Move around "focusing on ..." messages to print
5595 them only for matching functions/modules.
5596 (dwflpp ctor): Also add cu (source file) name to derived
5597 probe point.
5598
525d6cbd
GH
55992005-08-09 Graydon Hoare <graydon@redhat.com>
5600
5601 * testsuite/parseok/nine.stp: Update
5602 * testsuite/semok/{six,seven,eleven,seventeen}.stp: Update.
5603
d7f3e0c5
GH
56042005-08-09 Graydon Hoare <graydon@redhat.com>
5605
a12eba57
RM
5606 * staptree.{cxx,h}
5607 (target_symbol): New struct.
d7f3e0c5
GH
5608 (*_visitor::visit_target_symbol): Support it.
5609 (visitor::active_lvalues)
5610 (visitor::is_active_lvalue)
5611 (visitor::push_active_lvalue)
5612 (visitor::pop_active_lvalue): Support lvalue-detection.
5613 (delete_statement::visit)
5614 (pre_crement::visit)
5615 (post_crement::visit)
5616 (assignment::visit): Push and pop lvalue expressions.
a12eba57 5617 * elaborate.{cxx,h}
d7f3e0c5
GH
5618 (lvalule_aware_traversing_visitor): Remove class.
5619 (no_map_mutation_during_iteration_check)
5620 (mutated_map_collector): Update lvalue logic.
5621 (typeresolution_info::visit_target_symbol): Add, throw error.
5622 * parse.{cxx,h}
5623 (tt2str)
5624 (tok_is)
5625 (parser::expect_*)
5626 (parser::peek_*): New helpers.
5627 (parser::parse_symbol): Rewrite, support target_symbols.
5628 * translate.cxx (c_unparser::visit_target_symbol): Implement.
5629 * tapsets.cxx (var_expanding_copy_visitor): Update lvalue logic,
5630 change visit_symbol to visit_target_symbol.
5631
0110f903
MH
56322005-08-09 Martin Hunt <hunt@redhat.com>
5633
5634 PR 1174
a12eba57 5635 * stp_check.in: Supply path for lsmod.
0110f903
MH
5636 * stp_check: Removed.
5637
d98d459c
GH
56382005-08-09 Graydon Hoare <graydon@redhat.com>
5639
a12eba57 5640 * elaborate.cxx:
d98d459c
GH
5641 (delete_statement_symresolution_info): New struct.
5642 (symresolution_info::visit_delete_statement): Use it.
5643 (delete_statement_typeresolution_info): New struct.
5644 (typeresolution_info::visit_delete_statement): Use it.
5645 (symresolution_info::find_var): Accept -1 as 'unknown' arity.
5646 * elaborate.h: Update to reflect changes in .cxx.
5647 * translate.cxx (mapvar::del): New method.
5648 (c_unparser::getmap): Check arity >= 1;
5649 (delete_statement_operand_visitor): New struct.
5650 (c_unparser::visit_delete_statement): Use it.
5651 * staptree.cxx (vardecl::set_arity): Accept and ignore -1.
5652 (vardecl::compatible_arity): Likewise.
5653 * testsuite/buildok/eight.stp: New test for 'delete' operator.
5654
f8426683
RM
56552005-08-08 Roland McGrath <roland@redhat.com>
5656
5657 * loc2c-test.c: New file.
debd8982 5658 * Makefile.am (noinst_PROGRAMS): Add loc2c-test.
f8426683
RM
5659 (loc2c_test_SOURCES, loc2c_test_LDADD): New variables.
5660 * Makefile.in, aclocal.m4: Regenerated.
5661
82fab474
FCE
56622005-08-08 Frank Ch. Eigler <fche@elastic.org>
5663
5664 * stap.1.in: Autoconfify old man page.
5665 * configure.ac: Make it so.
5666 * stap.1: Removed.
5667 * configure, Makefile.in, aclocal.m4: Regenerated.
5668
4369b127
FCE
56692005-08-05 Frank Ch. Eigler <fche@elastic.org>
5670
5671 * runtest.sh: Keep around log files from crashed processes,
5672 those whose rc is neither 0 nor 1.
f8426683 5673
39bcd429
FCE
56742005-08-05 Frank Ch. Eigler <fche@elastic.org>
5675
5676 * tapsets.cxx (query_statement|function|cu|module): Add explicit
5677 nested try/catch, since elfutils iteration seems to block
5678 exception catching.
f8426683 5679
aab2b35f
FCE
56802005-08-05 Frank Ch. Eigler <fche@elastic.org>
5681
5682 PR translator/1175
5683 * translate.cxx (*): Added unlikely() markers to most emitted error
5684 checks.
5685 (mapvar::get,set): Handle NULL<->"" impedance mismatch.
5686 (itervar::get_key): Ditto. Use base index=1 for keys.
5687 * testsuite/buildok/one.stp: Extend. And it runs with -p5 too.
5688 * stap.1: Document use of ";" statament as mechanism for grammar
5689 ambiguity resolution.
5690 * stp_check.in: Set $prefix.
5691 * systemtap.spec.in: Prereq kernel-devel, kernel-debuginfo,
5692 and not tcl.
5693 * tapsets.cxx: Make slightly less verbose.
aab2b35f 5694
50e0d793
GH
56952005-08-03 Graydon Hoare <graydon@redhat.com>
5696
5697 * tapsets.cxx (dwflpp): Fix address calculation logic a bit,
5698 and use prologue-end addresses for function probes.
5699
d5d7c2cc
FCE
57002005-08-03 Frank Ch. Eigler <fche@redhat.com>
5701
5702 * stap.1: More meat, all stub sections filled.
5703 * elaborate.cxx (visit_assignment): Add numerous missing cases.
5704 * parse.cxx: Parse ".=" operator.
5705 * testsuite/semok/sixteen.stp: Check them.
5706 * main.cxx (usage): Don't show incompletely supported options.
5707
4515ee3f
MH
57082005-08-03 Martin Hunt <hunt@redhat.com>
5709
f8426683 5710 * stp_check.in : Copy sources to /var/cache/systemtap.
2205d115
MH
5711 * systemtap.spec.in: Install stp_check.
5712 * Makefile.am (install-exec-local): Install stp_check.
f8426683 5713
2205d115 57142005-08-03 Martin Hunt <hunt@redhat.com>
f8426683 5715
4515ee3f
MH
5716 * configure.ac: Add stp_check to AC_CONFIG_FILES.
5717 * stp_check.in : New file.
5718
27cffb52
FCE
57192005-08-03 Frank Ch. Eigler <fche@elastic.org>
5720
5721 * README: Be more specific about prerequisites.
5722 * tapset/builtin_string.stp: New builtin.
5723 * testsuite/buildok/seven.stp, semko/eighteen.stp: New tests.
5724
d8aeeb5d
RM
57252005-08-03 Roland McGrath <roland@redhat.com>
5726
5727 * configure.ac, systemtap.spec.in: Version 0.2.1.
5728 * Makefile.in, aclocal.m4, configure: Regenerated.
5729
957e0cd3
RM
57302005-08-02 Roland McGrath <roland@redhat.com>
5731
ea4e6824
RM
5732 * loc2c.c (emit_bitfield): Return bool, value from emit_base_fetch.
5733 (c_translate_fetch): Update caller.
5734 (c_translate_pointer): Never ignore emit_base_fetch return value.
5735
957e0cd3
RM
5736 * systemtap.spec.in (%install): Remove parameters after %makeinstall.
5737
a781f401
FCE
57382005-08-02 Frank Ch. Eigler <fche@elastic.org>
5739
5740 * loc2.c (emit_loc_address): Emit interleaved declaration into
5741 its own nested { } block.
5742 * tapsets.cxx (literal_stmt_for_local): Emit deref_fault block
5743 unconditionally.
5744 * tapset/builtin_hexstring.stp: New builtin.
5745 * testsuite/buildok/six.stp: New test.
5746
71696fcf
FCE
57472005-08-02 Frank Ch. Eigler <fche@elastic.org>
5748
5749 * tapsets.cxx (emit_registrations): Treat module_name="kernel"
5750 as if module_name="".
5751
a229fcd7
GH
57522005-08-01 Graydon Hoare <graydon@redhat.com>
5753
5754 * staptree.{cxx,h} (probe_point::component): Add a ctor.
5755 * tapsets.cxx (dwarf_derived_probe): Synthesize concrete
5756 probe_point for matched pattern.
5757 (dwarf_probe_type)
5758 (dwarf_query::add_kernel_probe)
5759 (dwarf_query::add_module_probe): Remove, they were noise.
5760 (dwflpp::module_name_matches): Don't call get_module_dwarf().
5761
fd6602a0
FCE
57622005-08-01 Frank Ch. Eigler <fche@elastic.org>
5763
5764 * tapsets.cxx: Support ".return" option for function probe points.
5765 * testuite/buildok/five.stp: Try it.
5766
fe3d01fa
FCE
57672005-08-01 Frank Ch. Eigler <fche@elastic.org>
5768
5769 * elaborate.cxx (derive_probes, semantic_pass_symbols): Improve
5770 error message specificity.
5771 * translate.cxx (emit_module_init): Compact partial registration
5772 recovery code.
5773 (emit_module_exit): Invert deregistration sequence.
5774 * testsuite/buildok/four.stp: Some module() test case.
957e0cd3 5775
d8067b24
FCE
57762005-08-01 Frank Ch. Eigler <fche@elastic.org>
5777
5778 * elaborate.cxx (derive_probes): Print error if results empty.
5779 * tapsets.cxx (dwflpp_assert): Handle positive RCs, which likely
5780 came from errno.
5781 (dwflpp::setup): Improve missing debug-info messages.
5782 * testsuite/semko/sixteen,seventeen.stp: New tests.
5783 * runtest.sh: Save stdout/stderr of FAIL/XPASS test cases.
5784 * Makefile.am (clean-local): Clean up testsuite/.
5785 * Makefile.in, aclocal.m4: Regenerated.
5786
398909a9
FCE
57872005-07-29 Frank Ch. Eigler <fche@redhat.com>
5788
5789 From Graydon Hoare <graydon@redhat.com:
5790 * tapsets.cxx (var_expanding_copy_visitor): Correct lvalue cases.
5791
044df7fa
FCE
57922005-07-29 Frank Ch. Eigler <fche@redhat.com>
5793
5794 * Makefile.am: Make sure stpd goes into libexec/systemtap/
5795 * Makefile.in: Regenerated.
5796
14d0763f
FCE
57972005-07-29 Frank Ch. Eigler <fche@redhat.com>
5798
5799 * configure.ac: Fail configure stage if elfutils 0.111+ is not found.
5800 * Makefile.am, elaborate.cxx, tapsets.cxx: Unconditionalize.
5801 * configure, Makefile.in, config.in: Regenerated.
5802
bb15b4e3
RM
58032005-07-29 Roland McGrath <roland@redhat.com>
5804
5805 * Version 0.2 distribution.
5806
5807 * systemtap.spec.in: Include %{_datadir}/systemtap/tapset directory.
5808 (%check): Add section, run make check.
5809 * Makefile.am (EXTRA_DIST): Add runtest.sh.
5810 * Makefile.in: Regenerated.
5811
5812 * systemtap.spec.in: Include man pages.
5813 * Makefile.am (man_MANS): Renamed to dist_man_MANS.
5814
5815 * configure.ac: Add AM_CONDITIONAL definition of HAVE_LIBDW.
5816 * Makefile.am [HAVE_LIBDW] (stap_SOURCES_libdw): New variable.
5817 (stap_SOURCES): Use it, moving loc2c.c there.
5818 * configure, config.in: Regenerated.
5819
5820 * tapsets.cxx: <libdw.h> -> <elfutils/libdw.h>
5821 * loc2c.c, loc2c.h: Likewise.
5822
5823 * main.cxx (main): Check return value of system.
5824
5825 * systemtap.spec.in (LDFLAGS): Punt using $ORIGIN here, just hard-code
5826 %{_libdir}.
5827 (elfutils_version): Bump to 0.111.
5828 [bundled_elfutils]: Don't massage libdwfl.h header any more.
5829
5830 * configure.ac: Don't check for libelf.h, not actually #include'd.
5831 Update -ldw check for merged libdwfl+libdw.
5832 (stap_LIBS): New substituted variable. Set only this, not LIBS,
5833 with -ldw check.
5834 * Makefile.am (stap_LDADD): New variable, use @stap_LIBS@.
5835
5836 * Makefile.am (AM_CPPFLAGS): Use ${pkgdatadir}.
5837 (AM_CFLAGS): Use -W instead of -Wextra, for gcc 3 compatibility.
5838 (stpd_LDFLAGS): Variable removed.
5839 (AM_MAKEFLAGS): Variable removed.
5840
84e5ea0f
FCE
58412005-07-28 Frank Ch. Eigler <fche@elastic.org>
5842
5843 * elaborate.cxx (find_var): Correct array dereferencing thinko.
5844
77de5e9e
GH
58452005-07-28 Graydon Hoare <graydon@redhat.com>
5846
5847 * elaborate.cxx (derived_probe::derived_probe): Accept NULL probe.
5848 * staptree.cxx (provide, require): Move from here...
5849 * staptree.h: to here, and virtualize deep-copy methods.
bb15b4e3
RM
5850 * translate.cxx
5851 (c_unparser::emit_common_header): Include loc2c-runtime.h
5852 * tapsets.cxx
77de5e9e
GH
5853 (dwflpp::iterate_over_modules): Use new, faster getmodules loop.
5854 (dwflpp::literal_stmt_for_local): New method, call loc2c.
5855 (var_expanding_copy_visitor): New struct which expands $-vars.
5856 (dwarf_derived_probe): Rebuild this->body using var expander.
5857 (query_function): Refactor logic a bit for speed.
bb15b4e3 5858 * loc2c.{c,h}: Copies (with minor changes) of Roland's work
77de5e9e
GH
5859 from elfutils CVS.
5860 * Makefile.am (AM_CFLAGS): Set to elfutils-style.
5861 (stap_SOURCES): Add loc2c.c.
5862 * Makefile.in: Regenerate.
5863
b2d5d95c
FCE
58642005-07-28 Frank Ch. Eigler <fche@redhat.com>
5865
5866 * stap.1: Beginnings of a man page.
5867 * Makefile.am: Install it. Comment out stpd LDADD goodies.
5868 * configure.ac: Futilely complain about non-stpd LIBS.
5869 * Makefile.in, configure.in: Regenerated.
5870 * main.cxx (usage): Remove ARGS from help text, as nothing is
5871 done with these yet.
5872
3d49c615
FCE
58732005-07-28 Frank Ch. Eigler <fche@redhat.com>
5874
5875 * translate.cxx: Add "pt_regs*" field to context.
5876 * tapsets.cxx (*): Correct kprobes API interface.
5877 * testsuite/buildok/three.stp: New test, copied from semok.
5878 * Makefile.am (install-data-local): Also install runtime/relayfs,
bb15b4e3 5879 so scripts can build against headers located thereunder.
3d49c615 5880 * Makefile.in: Regenerated.
bb15b4e3 5881
24cb178f
FCE
58822005-07-28 Frank Ch. Eigler <fche@redhat.com>
5883
5884 translator/1120
5885 * main.cxx (main): Preset -R and -I options from environment
5886 variables (if set). Pass guru mode flags to parser.
5887 * parse.cxx (privileged): New parser operation flag. Update callers.
5888 (parse_embeddedcode): Throw an error if !privileged.
5889 (parse_functiondecl): Change signature. Prevent duplicates.
5890 (parse_globals): Ditto.
5891 * parse.h: Corresponding changes.
5892 * tapset/*.stp: Beginnings of real tapset library, to replace
5893 previous builtins.
5894 * tapsets.cxx: Greatly reduce verbose mode output.
5895 * Makefile.am: Install & dist it.
5896 * runtest.sh: Refer to it.
5897 * Makefile.in, aclocal.m4: Regenerated.
5898 * testsuite/*/*.stp: Set guru mode via /bin/sh if needed.
5899 * testusite/*/*ko.stp: Homogenize shell scripts.
bb15b4e3 5900
377b8831
FCE
59012005-07-28 Frank Ch. Eigler <fche@redhat.com>
5902
5903 translator/1120
5904 translator/1123
5905 * elaborate.cxx (semantic_pass_symbols): Print a more helpful
5906 error message around exceptions.
5907 * elaborate.h (systemtap_session): Add guru_mode field.
5908 * main.cxx (main): Initialize it to false. Add version-sensitive
5909 script library searching. Add more failure messages.
5910 * tapsets.cxx (dwflpp_assert): Add a decorative text parameter.
5911 Update callers.
5912
bc7a7312
MH
59132005-07-28 Martin Hunt <hunt@redhat.com>
5914
5915 * Makefile.am (install-data-local): Add runtime/transport.
5916 * Makefile.in: regenerated.
bb15b4e3 5917
8a43522c
GH
59182005-07-26 Graydon Hoare <graydon@redhat.com>
5919
5920 * elaborate.cxx: Revert builtin-function code.
5921 * translate.cxx: Likewise.
5922 * tapsets.{h,cxx}: Likewise.
5923
2dc40820
MH
59242005-07-26 Martin Hunt <hunt@redhat.com>
5925
21ba5010
MH
5926 * buildrun.cxx (compile_pass): Add -Wno-unused to CFLAGS because
5927 usually a module doesn't use every function in the runtime.
5928
59292005-07-26 Martin Hunt <hunt@redhat.com>
bb15b4e3
RM
5930
5931 * Makefile.am (stpd_LDFLAGS): Set rpath correclty because otherwise
377b8831
FCE
5932 automake doesn't seem to get it right when binaries are in libexec
5933 subdirs.
2dc40820 5934 (AM_CPPFLAGS): revert.
bb15b4e3
RM
5935 * systemtap.spec.in (LDFLAGS): Set libexecdir here instead.
5936
54dfabe9
FCE
59372005-07-26 Frank Ch. Eigler <fche@redhat.com>
5938
5939 Support %{ embedded-c %}
5940 * staptree.h (embeddedcode): New statement subtype. Stub support in
5941 visitors.
5942 * staptree.cxx: Ditto.
5943 * parse.cxx: Parse %{ / %}. Accept "_" as identifier leading char.
5944 (parse_probe): Simplify calling convention.
5945 * elaborate.h: Store embedded code.
5946 * elaborate.cxx: Pass it.
5947 * translate.cxx: Transcribe it. Return some dropped module init/exit
5948 code.
5949 * Makefile.am: Add buildok/buildko tests.
5950 * Makefile.in: Regenerated.
5951 * main.cxx: Return EXIT_SUCCESS/FAILURE even for weird rc.
5952 * testsuite/parseok/nine.stp: Test _identifiers.
5953 * testsuite/transko/*.stp: Tweak to force -p3 rather than -p2 errors.
5954 * testsuite/semok/transko.stp: ... and keep it that way in the future.
5955 * testsuite/parse*/*: Some new tests for %{ %}.
5956 * testsuite/build*/*: New tests for -p4.
5957
6c9f0d37
MH
59582005-07-26 Martin Hunt <hunt@redhat.com>
5959
f05bc729 5960 * Makefile.am (AM_CPPFLAGS): Set PKGLIBDIR correctly.
6c9f0d37 5961
bb15b4e3 59622005-07-26 Martin Hunt <hunt@redhat.com>
bfdc9c09 5963
f05bc729 5964 * systemtap.spec.in: Stpd goes in libexec/systemtap.
6c9f0d37 5965 * Makefile.am (libexecdir): Set to libexecdir/systemtap.
bb15b4e3 5966 * aclocal.m4, Makefile.in: Regenerated
6c9f0d37 5967
f00a8372
RM
59682005-07-25 Roland McGrath <roland@redhat.com>
5969
5970 * configure.ac: Don't define PKGLIBDIR and PKGDATADIR here.
5971 * Makefile.am (AM_CPPFLAGS): New variable, use -D here instead.
5972 (dist-hook): Don't remove ChangeLog files.
5973 (install-data-local): Don't install docs, just runtime stuff.
5974 (rpm, clean-local): Use make variables instead of @substitution@s.
5975 * configure, config.in, aclocal.m4, Makefile.in: Regenerated
5976
67c0a579
GH
59772005-07-22 Graydon Hoare <graydon@redhat.com>
5978
5979 * translate.cxx (itervar): New class.
5980 (*::visit_foreach_loop): Implement.
5981 Various bug fixes.
5982 * staptree.cxx (deep_copy_visitor::*): Copy tok fields.
5983 * elaborate.cxx (lvalue_aware_traversing_visitor):
5984 (mutated_map_collector):
5985 (no_map_mutation_during_iteration_check): New classes.
5986 (semantic_pass_maps): New function to check map usage.
5987 (semantic_pass): Call it.
5988 * testsuite/transok/eight.stp: Test 'foreach' loop translation.
f00a8372 5989 * testsuite/semko/{thirteen,fourteen,fifteen}.stp:
67c0a579
GH
5990 Test prohibited forms of foreach loops.
5991
1e7ad3bf
MH
59922005-07-21 Martin Hunt <hunt@redhat.com>
5993
5994 * Makefile.am (EXTRA_DIST): Add systemtap.spec.
5995 (install-data-local): Install docs and probes.
5996 (docs): New target.
5997 (rpm): New target.
f00a8372 5998
1e7ad3bf
MH
5999 * configure.ac: Set initial version to 0.1.1.
6000 (pkglibdir): Set to libexec.
6001
6002 * Makefile.in: Regenerated.
f00a8372 6003
313b2f74
GH
60042005-07-20 Graydon Hoare <graydon@redhat.com>
6005
6006 * elaborate.{cxx,h} (find_array): Remove.
6007 (find_scalar): Rename to find_var, add array support.
6008 * staptree.{cxx,h} (vardecl::compatible_arity): New method.
6009 * translate.cxx: Refactor, add array read/write support.
6010 * testsuite/transok/three.stp: Uncomment array uses.
6011 * testsuite/transok/seven.stp: New test of array r/w.
6012
bfb3d2d2
FCE
60132005-07-20 Frank Ch. Eigler <fche@redhat.com>
6014
6015 * tapsets.cxx (*::emit_[de]registrations): Add logic for probe
6016 lifecycle control (session_state).
6017 * translate.cxx (emit_common_header,emit_module_{init,exit}): Ditto.
6018 (visit_*): Use per-context errorcount.
6019
76dab3c2
FCE
60202005-07-19 Frank Ch. Eigler <fche@redhat.com>
6021
6022 * Makefile.am (dist-hook): Complete the resulting tarball.
6023 * Makefile.in: Regenerated.
6024
a76c46d5
FCE
60252005-07-19 Frank Ch. Eigler <fche@redhat.com>
6026
6027 * translate.cxx (emit_module_init/exit, translate_pass): Conform
6028 to newer runtime startup/shutdown hooks.
6029
eaf134e7
FCE
60302005-07-15 Frank Ch. Eigler <fche@redhat.com>
6031
6032 * Makefile.am (install-data-local): Correct typo.
6033 * buildrun.cxx (compile_pass): Ditto.
6034 * main.cxx (main): Print errors if passes 4 or 5 fail.
6035
92ade41d
FCE
60362005-07-14 Frank Ch. Eigler <fche@redhat.com>
6037
6038 * buildrun.cxx (compile_pass, run_pass): Get closer to a working
6039 test_mode.
6040 * translate.cxx (emit_module_init, emit_common_header): Ditto.
6041 (translate_pass): Ditto.
6042
ecfa3e8b
FCE
60432005-07-14 Frank Ch. Eigler <fche@redhat.com>
6044
6045 * Makefile.am (stpd): Install in $pkglibdir.
6046 (runtime): Copy to $pkgdatadir.
6047 * configure.ac: Pass along pkgdatadir and pkglibdir.
6048 * main.cxx: Default runtime_path from pkgdatadir.
6049 * buildrun.cxx (run_pass): Correct stpd directory.
6050 * Makefile.in, configure, config.in: Regenerated.
6051
f8220a7b
GH
60522005-07-12 Graydon Hoare <graydon@redhat.com>
6053
6054 * elaborate.cxx
6055 (semantic_pass_symbols): Only enter body if non-null.
6056 (semantic_pass_types): Likewise.
6057 (semantic_pass): Pass session to register_standard_tapsets.
6058 * translate.cxx
6059 (builtin_collector): New struct.
6060 (hookup_builtins): New function.
6061 (translate_pass): Only translate functions with bodies.
6062 (c_unparser::emit_common_header): Likewise, and call hookup_builtins.
6063 * tapsets.hh (builtin_function): New class.
6064 (register_standard_tapsets): Change parameter to session.
6065 * tapsets.cc (bultin_function::*): Implement class.
6066 (register_standard_tapsets): Register printk, log, warn.
6067 * testsuite/transok/six.stp: New test.
6068
d04cf5ff
FCE
60692005-07-12 Frank Ch. Eigler <fche@redhat.com>
6070
6071 * buildrun.cxx (compile_pass): Make non-verbose mode quieter.
6072 (run_pass): Spawn stpd for dirty work.
6073 * Makefile.am: Also build stpd into libexecdir.
6074 * configure.ac: Pass LIBEXECDIR.
6075 * Makefile.in, configure, config.in: Regenerated.
6076 * AUTHORS: Update.
6077
c37f6b36
GH
60782005-07-11 Graydon Hoare <graydon@redhat.com>
6079
6080 * staptree.cxx (require): Generally handle null pointers in src.
6081 (deep_copy_visitor::visit_if_statement): Revert fche's change.
6082
3f43362a
FCE
60832005-07-11 Frank Ch. Eigler <fche@redhat.com>
6084
6085 * parse.cxx (parse_literal): Compile cleanly on 64-bit host.
6086 * staptree.cxx (deep_copy_visitor::visit_if_statement): Don't
6087 freak on a null if_statement.elseblock.
6088
85365d1b
GH
60892005-07-07 Graydon Hoare <graydon@redhat.com>
6090
6091 * staptree.{h,cxx} (deep_copy_visitor): New visitor.
f00a8372 6092 * elaborate.cxx
85365d1b
GH
6093 (derived_probe::derived_probe):
6094 (alias_expansion_builder::build): Use it.
6095 * testsuite/semok/fifteen.stp: New test which relies on deep copy.
6096
0d49d7bc
FCE
60972005-07-07 Frank Ch. Eigler <fche@redhat.com>
6098
6099 * Makefile.am (dist): Package up the source tree, including
6100 testsuite and runtime.
6101 * main.cxx: Use clog instead of cerr for logging messages.
6102 * buildrun.cxx: Ditto.
6103 (compile_pass): Add -Iruntime/user for test mode.
6104 * translate.cxx (*): Commonalize test/real mode output.
6105 * Makefile.in: Regenerated.
6106
5227f1ea
GH
61072005-07-05 Graydon Hoare <graydon@redhat.com>
6108
6109 * elaborate.{h,cxx}: Revert previous changes.
6110 * tapsets.{h,cxx}: Adapt to verbose as a member of session.
6111 * elaborate.cxx (alias_expansion_builder::build): Avoid copying
6112 locals between alias definition and use.
6113 * testsuite/semok/{twelve,thirteen,fourteen}.stp: New tests.
6114 * staptree.cxx (probe_alias::printsig): Print equals sign.
6115
f4b28491
FCE
61162005-07-05 Frank Ch. Eigler <fche@redhat.com>
6117
6118 * elaborate.h (systemtap_session): Add more command-line arguments.
6119 * staptree.h (verbose): Bad global, no donut.
6120 * elaborate.cxx: Temporarily disable verbose variable access.
6121 * main.cxx: Support more arguments, build/run passes. Revamp
6122 temporary file generation and partial-pass output generation.
6123 * tapsets.cxx, translate.cxx: Emit just enough extra punctuation
6124 and fluff to make generated probe pass -Werror.
6125 * buildrun.cxx, buildrun.h: New files for passes 4/5. Partial
6126 support for build pass, nothing on probe execution yet.
6127 * testsuite/transok/*.stp: Force just -p3, now that -p4/5 exist.
6128 * Makefile.am, Makefile.in: Corresponding changes.
6129
6deb8173
GH
61302005-07-04 Graydon Hoare <graydon@redhat.com>
6131
6132 * elaborate.h (symresolution_info::current_derived_probe): New field.
6133 (symresolution_info::current_probe): Change type.
6134 * elaborate.cxx (semantic_pass_symbols): Add passes for resolving
6135 locals in pre-derivation base probes and pre-expansion aliases.
6136 (symresolution_info::visit_symbol):
6137 (symresolution_info::find_scalar): Update to match new field.
6138
20c6c071
GH
61392005-06-27 Graydon Hoare <graydon@redhat.com>
6140
6141 * staptree.{h,cxx} (probe_alias): New structure.
6142 * parse.{h,cxx} (parser::parse): Parse probes or probe aliases.
6143 (parser::parse_probe): Likewise.
6144 * tapsets.{h,cxx}:
6145 (derived_probe_builder):
f00a8372
RM
6146 (match_key):
6147 (match_node):
20c6c071
GH
6148 (alias_derived_probe): Move from here,
6149 * elaborate.{h,cxx}: to here.
6150 * elaborate.h (systemtap_session::pattern_root): New member.
6151 (register_library_aliases): New function.
6152 * tapsets.cxx: Build one dwarf_derived_probe per target address.
6153
ec4373ff
GH
61542005-06-23 Graydon Hoare <graydon@redhat.com>
6155
f00a8372 6156 * tapsets.cxx
ec4373ff
GH
6157 (probe_type): New enum.
6158 (probe_spec): New struct.
6159 (dwarf_derived_probe): Reorganize a bit, interpret .return.
6160 (query_statement): Translate addresses back to module space.
6161 (probe_entry_function_name):
6162 (probe_entry_struct_kprobe_name):
6163 (foreach_dwarf_probe_entry):
6164 (declare_dwarf_kernel_entry):
6165 (deregister_dwarf_kernel_entry):
6166 (register_dwarf_kernel_entry):
6167 (register_dwarf_module):
6168 (declare_dwarf_module_entry):
6169 (deregister_dwarf_module_entry):
6170 (register_dwarf_module_entry): New functions.
f00a8372
RM
6171 (dwarf_derived_probes::emit_probe_entries):
6172 (dwarf_derived_probes::emit_registrations):
ec4373ff
GH
6173 (dwarf_derived_probes::emit_deregistrations): Implement.
6174
b98a8d73
FCE
61752005-06-21 Frank Ch. Eigler <fche@redhat.com>
6176
6177 * config.in, configure: Regenerated.
6178 * tapsets.cxx: Make dwarf code conditional on new elfutils header.
6179
bd2b1e68
GH
61802005-06-20 Graydon Hoare <graydon@redhat.com>
6181
6182 * configure.ac: Scan for libdwfl.
6183 * staptree.h (verbose): New global.
6184 * main.cxx (usage, main): Implement -v option.
6185 * tapsets.cxx (dwflpp): New struct.
6186 (query_statement): New function.
6187 (query_function): New function.
6188 (query_cu): New function.
6189 (query_module): New function.
6190 (dwarf_derived_probe): Implement primary forms.
6191
b55bc428
FCE
61922005-06-14 Graydon Hoare <graydon@redhat.com>
6193
6194 * tapsets.h: New file.
6195 (derived_probe_builder): Callback for making derived probes.
6196 (match_key): Component of pattern-matching tree.
f00a8372 6197 (match_node): Other component of pattern-matching tree.
b55bc428
FCE
6198 * tapsets.cxx: Add pattern-matching system for probes.
6199 (alias_derived_probe): Skeleton for alias probes.
6200 (dwarf_derived_probe): Skeleton for dwarf probes.
6201 (register_standard_tapsets): Registry for standard tapsets.
6202
56e12059
FCE
62032005-06-13 Frank Ch. Eigler <fche@redhat.com>
6204
6205 Start separating out translator-side probe point recognition.
6206 * tapsets.cxx: New file.
6207 (be_derived_probe): Support for begin/end probes.
6208 (derive_probe): Ditto. Reject anything unrecognized.
6209 * translator.cxx: Move out old code.
6210 * Makefile.am: Add new source file.
6211 * testsuite/semok/*: Switch to begin/end probes only.
6212
bb2e3076
FCE
62132005-06-08 Frank Ch. Eigler <fche@redhat.com>
6214
6215 systemtap/916
6216 Implement all basic scalar operators, including modify-assignment.
6217 * parse.cxx (lexer): Allow multi-character lookahead in order to
6218 scan 1/2/3-character operators.
6219 (parse_boolean_or/and/xor/shift): New routines.
6220 * translate.cxx (visit_assignment, visit_binary_expression,
6221 visit_*_crement): Generally rewrote.
6222 (visit_*): Added more parentheses in output.
6223 (emit_module_init): Initialize globals.
6224 * staptree.h, elaborate.cxx, elaborate.h: Remove exponentiation.
6225 * main.cxx (main): Add an end-of-line to output file.
6226 * testsuite/*: Several new tests.
6227
f3c26ea5
FCE
62282005-06-05 Frank Ch. Eigler <fche@elastic.org>
6229
6230 Implement for/next/continue/break/while statements.
6231 * staptree.h: Declare new 0-arity statement types. Tweak for_loop.
6232 * parse.cxx: Parse them all.
6233 * translate.cxx (c_unparser): Maintain break/continue label stack.
6234 (visit_for_loop, *_statement): New implementations.
6235 * elaborate.*, staptree.cxx: Mechanical changes.
6236 * testsuite/parseok/ten.stp, semko/twelve.stp, transko/two.stp,
f00a8372 6237 transok/five.stp: New tests.
f3c26ea5 6238
8846477c
FCE
62392005-06-03 Frank Ch. Eigler <fche@elastic.org>
6240
6241 * elaborate.cxx (find_*): Remove arity checks from here ...
6242 * staptree.cxx (set_arity): Put arity match assertion here.
6243 * testsuite/semko/{six,nine}.stp: Confirm logic.
6244 * testsuite/transko/one.stp: First translation-time ko test.
6245
553d27a5
FCE
62462005-06-03 Frank Ch. Eigler <fche@redhat.com>
6247
6248 * TODO: Removed entries already represented in bugzilla.
6249 * elaborate.cxx: Rewrite type inference for several operators.
6250 * main.cxx (main): For -p2 runs, print types of function/probe locals.
6251 * parse.cxx (scan): Identify more two-character operators.
6252 (parse_comparison): Support the whole suite.
6253 * translate.cxx (visit_unary_expression, logical_or_expr,
6254 logical_and_expr, comparison,ternary_expression): New support.
6255 * testsuite/parseok/semok.stp: Clever new test.
6256 * testsuite/transok/four.stp: New test.
6257 * testsuite/*: Some tweaked tests for syntax changes.
6258
63a7c90e
FCE
62592005-06-03 Frank Ch. Eigler <fche@redhat.com>
6260
6261 * parse.cxx (scan): Support C and C++ comment styles.
6262 * testsuite/parseok/four.stp: Test them some ...
6263 * testsuite/parseko/nine.stp: ... and some more.
6264
3d3887df
FCE
62652005-06-02 Frank Ch. Eigler <fche@redhat.com>
6266
6267 * translate.cxx (visit_concatenation, visit_binary_expression):
6268 New basic implementation.
6269 (*): Reduce emitted whitespace and remove `# LINE "FILE"' lines.
6270
69c68955
FCE
62712005-06-02 Frank Ch. Eigler <fche@redhat.com>
6272
6273 Parse foreach construct. Added fuller copyright notices throughout.
6274 * staptree.h (foreach_loop): New tree node type.
6275 * staptree.cxx: Print it, visit it, love it, leave it.
6276 * parse.cxx: Parse it.
6277 (parse_stmt_block): Don't require ";" separators between statements.
6278 (parse_array_in): Use [] as index group operator instead of ().
6279 * elaborate.cxx (visit_foreach_loop): New code.
6280 * translate.cxx: Slightly tighten errorcount/actioncount handling.
6281 * main.cxx: Accept "-" as script file name standing for stdin.
6282 (visit_arrayindex): Switch to simpler set_arity call.
6283 * configure.ac: Generate DATE macro.
6284 * Makefile.in, configure, config.in: Regenerated.
6285 * testsuite/*: New/updated tests for syntax changes, foreach ().
6286
ce10591c 62872005-05-30 Frank Ch. Eigler <fche@redhat.com>
f00a8372 6288
ce10591c
FCE
6289 More fully parse & elaborate "expr in array" construct.
6290 * staptree.h (array_in): Make this unary. Update .cxx to match.
6291 * parse.cxx (parse_array_in): Rewrite.
6292 (parse_symbol_plain): Removed. Update .h to match.
6293 * elaborate.cxx (typeresolution_info::visit_array_in): New function.
6294 (find_array): Tentatively, accept arity=0.
6295 * translate.cxx (c_unparser::c_assign): New functions to eliminate
6296 much ugly duplication. Use throughout.
6297 (visit_symbol): Correct function formal argument search.
6298 (c_tmpcounter*::visit): Add missing recursion in several functions.
6299 * testsuite/*: Add new tests for array-in construct. Add the
6300 first "transok" test.
6301 * Makefile.am: Add transok tests.
6302 * Makefile.in: Regenerated.
6303
4383d78c
FCE
63042005-05-26 Frank Ch. Eigler <fche@redhat.com>
6305
6306 * translate.cxx: Traverse trees just for common-header generation,
6307 to emit explicit temp variables into context. Switch to explicit
6308 "frame" pointer in generated function/probe bodies. Initialize
6309 locals in function bodies. Rename "test_unparser" to "c_unparser"
6310 throughout.
6311
bed7c0af
FCE
63122005-05-24 Frank Ch. Eigler <fche@redhat.com>
6313
6314 * elaborate.cxx (find_array): Support automagic tapset globals.
6315 * testsuite/semok/nine.stp: Test it.
6316 * staptree.cxx (stapfile print): List globals.
6317
d4f41a6f
FCE
63182005-05-24 Frank Ch. Eigler <fche@redhat.com>
6319
6320 * testsuite/semlib/*: New tapset library chunks for "-I" testing.
6321 * testsuite/semok/eight.stp, nine.stp: New tests.
6322
af56020f
FCE
63232005-05-22 Frank Ch. Eigler <fche@elastic.org>
6324
6325 * Makefile.am (gcov): New target to generate test-coverage data from
6326 a testsuite run.
6327 * Makefile.in: Regenerated.
6328
2b066ec1
FCE
63292005-05-20 Frank Ch. Eigler <fche@redhat.com>
6330
6331 Many changes throughout. Partial sketch of translation output.
6332 * elaborate.*: Elaboration pass.
6333 * translate.*: Translation pass.
6334 * staptree.*: Simplified for visitor concept.
6335 * main.cxx: Translator mainline.
6336 * *test.cxx: Removed.
6337 * testsuite/*: Some new tests, some changed for newer syntax.
6338
82919855
FCE
63392005-05-05 Frank Ch. Eigler <fche@redhat.com>
6340
6341 * parse.cxx (parse): Add helper methods.
6342 (lexer::scan, parse_assignment): Parse "<<<" operator. Fix assignment
6343 associativity.
6344 (parse_symbol): Permit function with empty arg list.
6345 (parse_global, parse_statement, parse_functiondecl): Expect
6346 unconsumed leading keyword.
6347 (parse_global): Don't use ";" termination.
6348 * parse.h: Corresponding changes.
6349 * staptree.cxx (binary_expression::resolve_types): Fix <<<
6350 type inference.
6351 (translator_output): Improve pretty-printing.
6352 (*): Add general visitors to statement/expression types.
6353 * staptree.h: Corresponding changes. Tweak symresolution_info fields.
6354 Add semantic_error class.
6355 * semtest.cxx: Adapt to this.
6356 * testsuite/parseok/two.stp, semok/*.stp: Adapt to syntax changes.
6357
40a1cb62
FCE
63582005-03-15 Frank Ch. Eigler <fche@redhat.com>
6359
6360 * semtest.cxx: Print probe signatures properly.
6361 * staptree.cxx (probe::printsig): New function.
6362
9c0c0e46
FCE
63632005-03-15 Frank Ch. Eigler <fche@redhat.com>
6364
6365 * TODO: New file. Include some probe-point-provider syntax examples.
6366 * parse.cxx (lexer::scan, parser::parse_literal): Support hex, octal
6367 numbers via strtol.
6368 (parse_probe, parse_probe_point): Modify for dotted syntax.
6369 * staptree.cxx: Ditto.
6370 * parsetest.cxx, semtest.cxx: Print parse/sem results even if
6371 .stp files were given on command line.
6372 * parse.h, staptree.h: Rename probe_point_spec -> probe_point.
6373 * runtest.sh: New test-runner front-end script.
6374 * Makefile.am: Use it for TESTS_ENVIRONMENT.
6375 * testsuite/*: Update probe point syntax. Add a bunch of new tests.
6376
0fefb486
FCE
63772005-03-04 Frank Ch. Eigler <fche@redhat.com>
6378
6379 * parse.cxx (scan): Support '$' characters in identifiers.
6380 (parse_symbol): Support thread-> / process-> shorthand.
6381 * staptree.cxx (symresolution_info::find): Split up into
6382 find_scalar, find_array, find_function.
6383 (resolve_symbols): Call the above for symbol/arrayindex/functioncall.
6384 (find_scalar): Add stub support for synthetic builtin variables.
6385 * staptree.h: Corresponding changes.
6386 * testsuite/*: Some new tests.
6387
0054a7ea
FCE
63882005-03-03 Frank Ch. Eigler <fche@redhat.com>
6389
6390 * parse.cxx (parse_assignment): Assert lvalueness of left
6391 operand.
6392 * staptree.h (expression): Add is_lvalue member.
6393 * staptree.cxx (functioncall::resolve_types): Don't crash on
6394 formal-vs-actual argument count mismatch.
f00a8372 6395 (*): Add some is_lvalue stub functions.
0054a7ea
FCE
6396 * testsuite/*: Some new tests.
6397
56099f08
FCE
63982005-03-01 Frank Ch. Eigler <fche@redhat.com>
6399
6400 * parse.cxx: Implement left-associativity for several types of
6401 operators. Add some more statement types. Parse functions.
6402 Be able to print tokens. Simplify error generating functions.
6403 Save tokens in all parse tree nodes.
6404 * parse.h: Corresponding changes.
6405 * staptree.cxx: Move tree-printing functions here. Add many
6406 new functions for symbol and type resolution.
6407 * staptree.h: Corresponding changes.
6408 * semtest.cxx: New semantic analysis pass & test driver.
6409 * testsuite/sem*/*: New tests.
6410 * parsetest.cxx: Separated parse test driver.
6411 * testsuite/parse*/*: Adapt tests to parsetest driver.
6412 * Makefile.am: Build semtest. Run its tests.
6413 * Makefile.in: Regenerated.
6414
2f1a1aea
FCE
64152005-02-11 Frank Ch. Eigler <fche@redhat.com>
6416
6417 * parse.cxx, parse.h: New files: parser.
6418 * staptree.h: New file: semantic object declarations.
6419 * staptree.cxx: New dummy driver file.
This page took 0.812777 seconds and 5 git commands to generate.