Debugging YaST

Şuraya atla: kullan, ara


This page partially overlaps with Bugs/YaST where you also find some debugging tips.

Logs

The logs are in /var/log/YaST2. The primary log file is y2log which is rotated to y2log-[1-9]. If YaST is run as non-root, the logs are ~/.y2log, ~/.y2log-[1-9].

If you need to see what steps the user took during the installation, look in macro_inst_initial.ycp and macro_inst_cont.ycp in the log directory. These are UI macros that are automatically recorded during the installation and they show what values were entered in the widgets (with passwords masked out) and what buttons were pressed. (You can invoke this facility yourself in yast2-qt by Ctrl-Alt-Shift-M and Ctrl-Alt-Shift-P.)

More Log Messages

Debugging log messages can be enabled in several ways:

Y2DEBUG=1
this is an environment variable. Use like Y2DEBUG=1 /sbin/yast2 lan. It also works on the kernel command line during the installation.
UI dialog
Press Shift-F7 in the Qt UI to switch the debugging messages at run time.
signal
Send the y2base process a USR1 signal to toggle debug logging. killall -USR1 y2base

strace

Strace is very useful for debugging YaST and other programs too. Here are the basics.

This is a frequently useful line: Y2DEBUG=1 strace -eopen -ostrace.log /usr/lib/YaST2/bin/y2base lan qt.

gdb

See the gdb manual and a gdb tutorial.

A complication in debugging YaST is that it loads its components dynamically which means that when you want to set a breakpoint in a part of the code, the code is not loaded yet. The way around it is to set auxilliary breakpoints in crucial places:

  • main
  • ScriptingAgent

See Also

YaST Development