Tutorial: How to properly post a bug

Search This thread

Indirect

Senior Member
Mar 25, 2011
2,346
3,001
Florida
Alright guys, I was on an irc channel when I considered posting this since it's rather important. There has been a lot of disappointing posts all over the forum with people complaining about bugs, while not providing any kind of information for the developers aside from "X doesn't work" or "I get random reboots".

Well, without the proper knowledge, how are we going to fix it? We don't know what kernel you may be running, what version number you're on, or any information that the system spits out to let you know there's an error. So, I decided to start this thread, to hopefully teach newbies how to give us (developers) proper knowledge when complaining about issues.

This thread will have 3 sections, Logcat (App / system debug log.), Dmesg (active kernel output) and last_ksmg (Typically if you get a random reboot or something of that sort {this is the same as dmesg except it gets the info from the last shutdown [like a kernel panic]})


Section 1: Logcat
This log should almost always be included just because it provides more info than just saying something doesn't work. It will essentially tell you which apps are crashing and why and it also gives output of what they're doing. (Your system is running through apps, the dialer, wireless radio's, etc are all ran through apps.) so, if something is general, like a system force close, please just include a logcat.

How to get a logcat:
Well, this is REALLY simple, all you need to do is just get adb up and running (google how to do that, I don't feel like writing a 'how to use adb' tutorial for everyone's phone.) and then type
Code:
adb logcat
then you just right click, select, and paste to the thread. It's really that simple!

Section 2: Dmesg

This is getting into issues such as wifi not working, sleep of death, etc. Basically, things that make us go "OH F***" when we use our devices. Note: You will need adb access for this to work, same as logcat.
What this will do is get us live kernel output so we can know things like "What driver is the kernel loading {or not loading for that matter}" and similar things. This is linux, so kernel output is important if a hardware aspect isn't working right.
How to get a dmesg:
This is simple as well, no matter what operating system you're on (mac, windows, linux) just type
Code:
adb shell dmesg > dmesg.txt
and then it will have written the output to a .txt file in your current directory. Either paste the contents to the thread, or attach it to your post.
You can also get the dmesg by using terminal emulator. Instead though, you dont type adb shell, you need to also include it to somewhere you will be able to save it. Like /sdcard so, the command goes
Code:
dmesg > /sdcard/dmesg.txt
Just get it off your sdcard and get the contents to the developer!

Section 3: last_kmsg
Ok, the last thing is last_kmsg. When android kernels crash, they right to last_kmsg so then you can find out what's going on. This is usually for issues such as random reboots and other various kernel panic symptoms. A kernel panic happens when the kernel tries to do something it can't. It doesn't mean wrong permissions, it could just have errored out on something and died which can cause a few things. Anyway, developers REALLY need this if debugging a kernel because it gives us a viable way to see WHAT it's trying to do instead of trying to guess what it is trying to do
How to get a last_kmsg:
This is super simple and the same on all phones no matter what, what you need is adb up and running (or terminal emulator) and either in adb shell, or terminal emulator just type
Code:
 cat /proc/last_kmsg > /sdcard/last_kmsg.txt
or you can do
Code:
 adb shell cat /proc/last_kmsg > kmsg.txt
and that will write it to your current working directory from cmd.

Hopefully, this way we developers can have our lives be a little bit easier and you can learn more about android.

I'm glad to have written this and devs, feel free to link to this guide as a "bug reporting FAQ" :)
 

Spiralzz

Senior Member
Aug 22, 2011
1,203
333
Boston
Thanks dude!!! I was looking for some kind of guide. Only thing I still don't understand is when are we supposed to give dmesg and when do we give the logcat? I understand the last_kmsg is for kernel panics and random reboots, but the rest two are still ambiguous to me... Could you please explain the other two in a simpler way with an easy example for each?... Sorry.. I'm a noob... :( but am trying to learn these things..
 
Last edited:
  • Like
Reactions: Rayizme

Randomwalker

Senior Member
Dec 5, 2011
334
56
There also is this app called 'Bootlog Uptime' that tries to auto-detect a crash and subsequently exports the log to sdcard.
 

anshumandash

Senior Member
Mar 9, 2011
1,647
487
When I get in to cmd in bootloader mode and type adb shell cat /proc/last_kmsg > kmsg.txt, I get a message Error: Device not found. I checked the ADB drivers, the are loading well. Am I doing something wrong?
 
  • Like
Reactions: RokuP

Indirect

Senior Member
Mar 25, 2011
2,346
3,001
Florida
If you're in boot loader mode, that's not adb.

Sent from my Full Android on Crespo4G using xda premium
 

Spiralzz

Senior Member
Aug 22, 2011
1,203
333
Boston
When I get in to cmd in bootloader mode and type adb shell cat /proc/last_kmsg > kmsg.txt, I get a message Error: Device not found. I checked the ADB drivers, the are loading well. Am I doing something wrong?

You need to boot into the ROM, then grab the logs.

Sent from my GT-I9100 using xda app-developers app
 

fatpanda0

Senior Member
Nov 3, 2012
285
108
Can someone help me please.

I am from the HTC One S (Ville C2) community. I am testing a new kernel by one of the devs who doesnt have the phone. Now after installing the new kernel the phone is on bootloop. I need to extract the last_kmsg. the only way I can get out of the boot loop to do anything is by pressing the power button and simulate battery out. This it seems erases the last_kmsg cuz when I enter recovery to get it. It either says no such file or sometimes ends up showing me the recovery kernels last_kmsg. I am at a total loss as to how I the last_kmsg file.

There is also no way to install a working boot image as the kernel uses a zip to install files on the phone so we must use recovery to restore to previous state. This leads to the original condition. I tried looking for a solution but cant find it anywhere.
 

piyush_soni

Senior Member
Nov 19, 2012
65
10
I tried the above method (via the Terminal Emulator) for finding the last_kmsg (my phone had just rebooted) and it says "/system/bin/sh: cat: /proc/last_kmsg: No such file or directory"

And Indeed, there is no last_kmsg file in my proc folder. Is there something I have to do to create it in the first place?

Thanks!
 

Kaiyes

Senior Member
Nov 3, 2011
98
17
I tried the above method (via the Terminal Emulator) for finding the last_kmsg (my phone had just rebooted) and it says "/system/bin/sh: cat: /proc/last_kmsg: No such file or directory"

And Indeed, there is no last_kmsg file in my proc folder. Is there something I have to do to create it in the first place?

Thanks!

I have the same problem.

Nexus 7-16 GB, PA 3.00, faux kernel 16 ultimate
 

Kaiyes

Senior Member
Nov 3, 2011
98
17
Just solved the last kmsg problem. Instead of making the terminal do the job and getting "there is no such directory", just go above one level from sdcard and find proc folder. There will be a file named last_kmsg.

Hope it helps someone

Nexus 7-16 GB, PA 3.00, faux kernel 16 ultimate

---------- Post added at 10:13 AM ---------- Previous post was at 10:08 AM ----------

I tried the above method (via the Terminal Emulator) for finding the last_kmsg (my phone had just rebooted) and it says "/system/bin/sh: cat: /proc/last_kmsg: No such file or directory"

And Indeed, there is no last_kmsg file in my proc folder. Is there something I have to do to create it in the first place?

Thanks!

Wait a few minutes it will be there

Nexus 7-16 GB, PA 3.00, faux kernel 16 ultimate
 
  • Like
Reactions: pocketrule

piyush_soni

Senior Member
Nov 19, 2012
65
10
Just solved the last kmsg problem. Instead of making the terminal do the job and getting "there is no such directory", just go above one level from sdcard and find proc folder. There will be a file named last_kmsg.

Kaiyes said:
Wait a few minutes it will be there

Nope. It's still not there for me ... I have a file called kmsg, but not last_kmsg.
 

glowerita

Senior Member
Apr 16, 2012
205
71
Udine (Italy)
I'm on JB 4.3, Galaxy Note 2 and I've Flash Davil Kernel.

Two Bugs for me:

1) when the Phone, in switch off, is charging... the LED will not light. No Red Light (when in charging), nor Green one, when it has reached the 100%.

2) When Phone is connect to PC it isn't recognized by the PC in any way. To transfer files I have to use some app via Wi-Fi.

Are Two knows Bugs? Thanks in advance.
 

glowerita

Senior Member
Apr 16, 2012
205
71
Udine (Italy)
Hey glowerita I have this same problem minus the devil kernel. I don't think devil works with the FTW rom

Sent from my SPH-L900 using Tapatalk

Hi! About PC recognize I've done so and now it's ok.
With Terminal emulator digit;

su
Press Enter.

Now digit; setprop persist.sys.usb.config mtp,adb

Enter, exit and reboot device and PC. [emoji1]

About led light... have you same problem like me?

Inviato dal mio GT-I9100 utilizzando Tapatalk
 
dmesg kmsg not permitted

Here's the dmesg.txt file when issuing C:\platform-tools>adb shell dmesg > dmesg.txt

"klogctl: Operation not permitted"

So I tried:

"C:\platform-tools>adb shell
←7←[r←[999;999H←[6nshell@e610:/ $ su
su
←7←[r←[999;999H←[6nroot@e610:/ # dmesg > dmesg.txt
dmesg > dmesg.txt
sh: can't create dmesg.txt: Read-only file system"

Results of issuing "C:\platform-tools>cat /proc/last_kmsg > /sdcard/last_kmsg.txt
The system cannot find the path specified.

C:\platform-tools>adb shell cat /proc/last_kmsg > kmsg.txt
/system/bin/sh: cat: /proc/last_kmsg: Operation not permitted"

Same results running terminal on phone also.

-Running PecanCM's CM11 Beta10 on LG L5 e610-
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 157
    Alright guys, I was on an irc channel when I considered posting this since it's rather important. There has been a lot of disappointing posts all over the forum with people complaining about bugs, while not providing any kind of information for the developers aside from "X doesn't work" or "I get random reboots".

    Well, without the proper knowledge, how are we going to fix it? We don't know what kernel you may be running, what version number you're on, or any information that the system spits out to let you know there's an error. So, I decided to start this thread, to hopefully teach newbies how to give us (developers) proper knowledge when complaining about issues.

    This thread will have 3 sections, Logcat (App / system debug log.), Dmesg (active kernel output) and last_ksmg (Typically if you get a random reboot or something of that sort {this is the same as dmesg except it gets the info from the last shutdown [like a kernel panic]})


    Section 1: Logcat
    This log should almost always be included just because it provides more info than just saying something doesn't work. It will essentially tell you which apps are crashing and why and it also gives output of what they're doing. (Your system is running through apps, the dialer, wireless radio's, etc are all ran through apps.) so, if something is general, like a system force close, please just include a logcat.

    How to get a logcat:
    Well, this is REALLY simple, all you need to do is just get adb up and running (google how to do that, I don't feel like writing a 'how to use adb' tutorial for everyone's phone.) and then type
    Code:
    adb logcat
    then you just right click, select, and paste to the thread. It's really that simple!

    Section 2: Dmesg

    This is getting into issues such as wifi not working, sleep of death, etc. Basically, things that make us go "OH F***" when we use our devices. Note: You will need adb access for this to work, same as logcat.
    What this will do is get us live kernel output so we can know things like "What driver is the kernel loading {or not loading for that matter}" and similar things. This is linux, so kernel output is important if a hardware aspect isn't working right.
    How to get a dmesg:
    This is simple as well, no matter what operating system you're on (mac, windows, linux) just type
    Code:
    adb shell dmesg > dmesg.txt
    and then it will have written the output to a .txt file in your current directory. Either paste the contents to the thread, or attach it to your post.
    You can also get the dmesg by using terminal emulator. Instead though, you dont type adb shell, you need to also include it to somewhere you will be able to save it. Like /sdcard so, the command goes
    Code:
    dmesg > /sdcard/dmesg.txt
    Just get it off your sdcard and get the contents to the developer!

    Section 3: last_kmsg
    Ok, the last thing is last_kmsg. When android kernels crash, they right to last_kmsg so then you can find out what's going on. This is usually for issues such as random reboots and other various kernel panic symptoms. A kernel panic happens when the kernel tries to do something it can't. It doesn't mean wrong permissions, it could just have errored out on something and died which can cause a few things. Anyway, developers REALLY need this if debugging a kernel because it gives us a viable way to see WHAT it's trying to do instead of trying to guess what it is trying to do
    How to get a last_kmsg:
    This is super simple and the same on all phones no matter what, what you need is adb up and running (or terminal emulator) and either in adb shell, or terminal emulator just type
    Code:
     cat /proc/last_kmsg > /sdcard/last_kmsg.txt
    or you can do
    Code:
     adb shell cat /proc/last_kmsg > kmsg.txt
    and that will write it to your current working directory from cmd.

    Hopefully, this way we developers can have our lives be a little bit easier and you can learn more about android.

    I'm glad to have written this and devs, feel free to link to this guide as a "bug reporting FAQ" :)
    12
    HALP! I BRICKD MY FONE!!1!

    I JAILBROKED IT LAST NIGHT AND NOW I NO GET SIGNEL!! PLASE HALP!!!1


    but on a more serious note, good tut :)
    1
    Thanks dude!!! I was looking for some kind of guide. Only thing I still don't understand is when are we supposed to give dmesg and when do we give the logcat? I understand the last_kmsg is for kernel panics and random reboots, but the rest two are still ambiguous to me... Could you please explain the other two in a simpler way with an easy example for each?... Sorry.. I'm a noob... :( but am trying to learn these things..
    1
    When I get in to cmd in bootloader mode and type adb shell cat /proc/last_kmsg > kmsg.txt, I get a message Error: Device not found. I checked the ADB drivers, the are loading well. Am I doing something wrong?
    1
    Just solved the last kmsg problem. Instead of making the terminal do the job and getting "there is no such directory", just go above one level from sdcard and find proc folder. There will be a file named last_kmsg.

    Hope it helps someone

    Nexus 7-16 GB, PA 3.00, faux kernel 16 ultimate

    ---------- Post added at 10:13 AM ---------- Previous post was at 10:08 AM ----------

    I tried the above method (via the Terminal Emulator) for finding the last_kmsg (my phone had just rebooted) and it says "/system/bin/sh: cat: /proc/last_kmsg: No such file or directory"

    And Indeed, there is no last_kmsg file in my proc folder. Is there something I have to do to create it in the first place?

    Thanks!

    Wait a few minutes it will be there

    Nexus 7-16 GB, PA 3.00, faux kernel 16 ultimate