[ltt-dev] LTTng. Strings with missing characters (ash) (fixed)

Mathieu Desnoyers compudj at krystal.dyndns.org
Tue Dec 23 14:54:22 EST 2008


ltt-control 0.62 now supports both bash and ash correctly. Here is how I
did it :

#separator is newline, ensure compatibility with bash and ash
N="
"

IFS=${N}
...

I took this trick from my openwrt router /etc/functions.sh file.

Mathieu


* Akyurek, Ali (EXT) (ali.akyurek.ext at siemens.com) wrote:
> 
> Hello, but i see like below, it seems also a newline in the mail:
> 
> IFS=$'
> '
> 
> Is it correct? 
> 
> -----Ursprüngliche Nachricht-----
> Von: Mathieu Desnoyers [mailto:compudj at krystal.dyndns.org] 
> Gesendet: Dienstag, 23. Dezember 2008 20:02
> An: Akyurek, Ali (EXT)
> Cc: ltt-dev at lists.casi.polymtl.ca
> Betreff: Re: [ltt-dev] LTTng. Strings with missing characters (ash)
> 
> OK, it looks like ash does not interpret \n as a newline.
> 
> replacing the IFS= line by
> 
> IFS=$'
> '
> 
> seems to work both in bash and ash (a CTRL-V enter), but seems hackish.
> Any better way to express a portable newline for both ash and bash ?
> 
> Mathieu
> 
> * Akyurek, Ali (EXT) (ali.akyurek.ext at siemens.com) wrote:
> > Also here is my ash configuration in busybox. Maybe it is useful.
> > 
> > And again thanks for the help and great work.
> > 
> > Ali Akyurek
> > 
> > #
> > # Ash Shell Options
> > #
> > CONFIG_ASH_JOB_CONTROL=y
> > # CONFIG_ASH_READ_NCHARS is not set
> > # CONFIG_ASH_READ_TIMEOUT is not set
> > CONFIG_ASH_ALIAS=y
> > CONFIG_ASH_MATH_SUPPORT=y
> > CONFIG_ASH_MATH_SUPPORT_64=y
> > # CONFIG_ASH_GETOPTS is not set
> > CONFIG_ASH_BUILTIN_ECHO=y
> > CONFIG_ASH_BUILTIN_TEST=y
> > # CONFIG_ASH_CMDCMD is not set
> > # CONFIG_ASH_MAIL is not set
> > CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
> > # CONFIG_ASH_RANDOM_SUPPORT is not set
> > # CONFIG_ASH_EXPAND_PRMT is not set
> > # CONFIG_HUSH is not set
> > # CONFIG_HUSH_HELP is not set
> > # CONFIG_HUSH_INTERACTIVE is not set
> > # CONFIG_HUSH_JOB is not set
> > # CONFIG_HUSH_TICK is not set
> > # CONFIG_HUSH_IF is not set
> > # CONFIG_HUSH_LOOPS is not set
> > # CONFIG_LASH is not set
> > # CONFIG_MSH is not set
> > 
> > -----Ursprüngliche Nachricht-----
> > Von: Mathieu Desnoyers [mailto:compudj at krystal.dyndns.org <mailto:compudj at krystal.dyndns.org> ]
> > Gesendet: Dienstag, 23. Dezember 2008 19:02
> > An: Akyurek, Ali (EXT)
> > Cc: ltt-dev at lists.casi.polymtl.ca
> > Betreff: Re: [ltt-dev] LTTng. Strings with missing characters (ash)
> > 
> > OK, I can reproduce the problem :
> > 
> > ash ltt-armall
> > (or busybox ash ltt-armall) :
> > 
> > 
> > Connecting all markers
> > Connecting fd_state file_descriptor
> > fs buffer_wait_e
> > Connecting d
> > fs buffer_wait_start
> > fs close
> > fs exec
> > fs ioctl
> > fs llseek
> > fs lseek
> > fs ope
> > Connecting
> > fs pollfd
> > fs pread64
> > fs pwrite64
> > fs read
> > fs readv
> > fs select
> > fs write
> > fs writev
> > global_state statedump_e
> > Connecting d
> > i
> > Connecting put i
> > Connecting put_eve
> > Connecting t
> > ipc call
> > ipc msg_create
> > ipc sem_create
> > ....
> > 
> > I'll try to figure out why IFS= behaves differently in ash.
> > 
> > Mathieu
> > 
> > 
> > * Mathieu Desnoyers (compudj at krystal.dyndns.org) wrote:
> > > And also, what type of shell are you using (type, version) ?
> > >
> > > Mathieu
> > >
> > > * Mathieu Desnoyers (mathieu.desnoyers at polymtl.ca) wrote:
> > > > (adding the ltt-dev list in CC, so other developers can have a look at
> > > > it and help reproducing this ARM problem)
> > > >
> > > > Hrm, weird,
> > > >
> > > > So /proc/ltt outputs correct strings, but ltt-armall output is messed
> > > > up.
> > > >
> > > > Can you do the following ?
> > > >
> > > > which ltt-armall
> > > >
> > > > and
> > > >
> > > > cat `which ltt-armall`
> > > >
> > > > I guess it has something to do with the IFS=$'\n' line in the script,
> > > > which works on x86, but maybe not on arm for some reason.
> > > >
> > > > Also, can you give me the output after this sequence of commands ?
> > > > ltt-armall
> > > > lttctl -C -w /tmp/trace trace
> > > > find /mnt/debugfs/ltt  (where /mnt/debugfs is the path to your debugfs
> > > > mount)
> > > >
> > > > Thanks
> > > >
> > > > Mathieu
> > > >
> > > > * Akyurek, Ali (EXT) (ali.akyurek.ext at siemens.com) wrote:
> > > > >
> > > > > Hello,
> > > > >
> > > > > Strings are seem to be cutted off at 'n' character.
> > > > >
> > > > > -----Ursprüngliche Nachricht-----
> > > > > Von: Mathieu Desnoyers [mailto:mathieu.desnoyers at polymtl.ca <mailto:mathieu.desnoyers at polymtl.ca> ]
> > > > > Gesendet: Montag, 22. Dezember 2008 19:51
> > > > > An: Akyurek, Ali (EXT)
> > > > > Betreff: Re: LTTng. Strings with missing characters
> > > > >
> > > > >
> > > > > Hrm,
> > > > >
> > > > > What do you get if you do :
> > > > >
> > > > > cat /proc/ltt ?
> > > > >
> > > > > And what is your kernel config ?
> > > > >
> > > > > Mathieu
> > > > >
> > > > > * Akyurek, Ali (EXT) (ali.akyurek.ext at siemens.com) wrote:
> > > > > >
> > > > > >
> > > > > >
> > > > > > Hello again,
> > > > > >
> > > > > > I've installed latest versions LTTng 0.70, lttcontrol 0.61.
> > > > > >
> > > > > > When i run armall, in the output, i see strings with missing characters like:
> > > > > >
> > > > > > ...
> > > > > > Connecting el irq_exit
> > > > > > ker
> > > > > > Connecting el kthread_create
> > > > > > ker
> > > > > > Connecting el kthread_stop
> > > > > > ker
> > > > > > Connecting el kthread_stop_ret
> > > > > > ker
> > > > > > ...
> > > > > >
> > > > > > 
> > > > > > Also after i'm done with tracing, the trace output directory looks like:
> > > > > >
> > > > > > drwxr-xr-x    2 root     0               0 Jan  1 02:12 .
> > > > > > drwxr-xr-x    3 root     0               0 Jan  1 01:55 ..
> > > > > > -rwxr-xr-x    1 root     0          262144 Jan  1 01:55 _page_e_0
> > > > > > -rwxr-xr-x    1 root     0          262144 Jan  1 01:55 d_sig_0
> > > > > > -rwxr-xr-x    1 root     0          262144 Jan  1 01:55 dle_fault_e_0
> > > > > > -rwxr-xr-x    1 root     0          262144 Jan  1 01:55 el_0
> > > > > > -rwxr-xr-x    1 root     0          262144 Jan  1 01:55 etif_state_0
> > > > > > -rwxr-xr-x    1 root     0          262144 Jan  1 01:55 etwork_ip_i_0
> > > > > > -rwxr-xr-x    1 root     0          262144 Jan  1 01:55 etwork_ipv4_i_0
> > > > > > -rwxr-xr-x    1 root     0           65536 Jan  1 01:55 fd_state_0
> > > > > > -rwxr-xr-x    1 root     0          262144 Jan  1 01:55 metadata_0
> > > > > > -rwxr-xr-x    1 root     0          262144 Jan  1 01:55 mm_0
> > > > > > -rwxr-xr-x    1 root     0          262144 Jan  1 01:55 put_0
> > > > > > -rwxr-xr-x    1 root     0          262144 Jan  1 01:55 put_eve_0
> > > > > >
> > > > > > Do you have an idea about it?
> > > > > > 
> > > > > > Thanks.
> > > > > >
> > > > > >
> > > > > > -----Ursprüngliche Nachricht-----
> > > > > > Von: Mathieu Desnoyers [mailto:mathieu.desnoyers at polymtl.ca <mailto:mathieu.desnoyers at polymtl.ca> ]
> > > > > > Gesendet: Freitag, 19. Dezember 2008 18:17
> > > > > > An: Akyurek, Ali (EXT)
> > > > > > Betreff: Re: arm userspace tracing
> > > > > >
> > > > > > Hello !
> > > > > >
> > > > > > Well, it's your lucky day I guess. I just added a neat feature to LTTng
> > > > > > which will help a great deal sending a subset of the data types
> > > > > > supported (a simple string) into the trace buffers from userspace _very_
> > > > > > easily. It's not integrated with the event management, so I would not
> > > > > > add this to application in production (because it would add overhead
> > > > > > even when tracing is disabled). With the latest LTTng, all you have to
> > > > > > do is :
> > > > > >
> > > > > > modprobe ltt-userspace-event
> > > > > > lttctl -C -w /tmp/trace trace (note : the arguments recently changed)
> > > > > > run stuff...
> > > > > > echo "Some event happened!" > /mnt/debugfs/ltt/write_event
> > > > > > lttctl -D trace
> > > > > > looking specifically for the event :
> > > > > > lttv -e userspace.event -m textDump -t /tmp/trace
> > > > > >
> > > > > > So basically, you can look for your own string into the trace stream as
> > > > > > a starting point. This is portable, so should work on ARM without any
> > > > > > problem.
> > > > > >
> > > > > > There is still a lot of work to do on ARM to have per-site activation of
> > > > > > tracepoints like we currently have in the kernel, but at least this
> > > > > > solution gives us _something_. It's just that it's always enabled.
> > > > > >
> > > > > > * Akyurek, Ali (EXT) (ali.akyurek.ext at siemens.com) wrote:
> > > > > > > Hello Mr.Desnoyers,
> > > > > > >
> > > > > > > First of all, thanks for the great work you've done.
> > > > > > > What i wonder is that is it possible to trace user space in arm architecture?
> > > > > > > In the quick start document it writes :
> > > > > > >
> > > > > > > "Get the latest markers-userspace-*.tar.bz2 and see the Makefile and examples. It
> > > > > > > allows inserting markers in executables and libraries, currently only on x86_32
> > > > > > > and x86_64."
> > > > > > >
> > > > > > > But ,then i've seen a patch in http://ltt.polymtl.ca/packages/markers-user/ <http://ltt.polymtl.ca/packages/markers-user/>  called lttng-userspace-tracing-arm.patch <http://ltt.polymtl.ca/packages/markers-user/lttng-userspace-tracing-arm.patch <http://ltt.polymtl.ca/packages/markers-user/lttng-userspace-tracing-arm.patch> > .
> > > > > > >
> > > > > >
> > > > > > That was a complete syscall implementation at some point, which could be
> > > > > > ported to the new infrastructure, but note that the current
> > > > > > markers-userspace-*.tar.bz2 code also needs linker script modification.
> > > > > >
> > > > > > Mathieu
> > > > > >
> > > > > > > Thanks.
> > > > > > >
> > > > > > > Mit freundlichem Gruss / Best Regards
> > > > > > > Ali Günhan Akyürek
> > > > > > > evoline TR
> > > > > > >
> > > > > >
> > > > > > --
> > > > > > Mathieu Desnoyers
> > > > > > OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68
> > > > > >
> > > > >
> > > > > --
> > > > > Mathieu Desnoyers
> > > > > OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68
> > > > >
> > > >
> > > > --
> > > > Mathieu Desnoyers
> > > > OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68
> > > >
> > > > _______________________________________________
> > > > ltt-dev mailing list
> > > > ltt-dev at lists.casi.polymtl.ca
> > > > http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev <http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev> 
> > > >
> > >
> > > --
> > > Mathieu Desnoyers
> > > OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68
> > >
> > > _______________________________________________
> > > ltt-dev mailing list
> > > ltt-dev at lists.casi.polymtl.ca
> > > http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev <http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev> 
> > >
> > 
> > --
> > Mathieu Desnoyers
> > OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68
> > 
> 
> > _______________________________________________
> > ltt-dev mailing list
> > ltt-dev at lists.casi.polymtl.ca
> > http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
> 
> 
> -- 
> Mathieu Desnoyers
> OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68
> 
> _______________________________________________
> ltt-dev mailing list
> ltt-dev at lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
> 

-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68




More information about the lttng-dev mailing list