BUGS 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. $Id$
  2. _ _ ____ _
  3. ___| | | | _ \| |
  4. / __| | | | |_) | |
  5. | (__| |_| | _ <| |___
  6. \___|\___/|_| \_\_____|
  7. BUGS
  8. Curl and libcurl have grown substantially since the beginning. At the time
  9. of writing (July 2007), there are about 47000 lines of source code, and by
  10. the time you read this it has probably grown even more.
  11. Of course there are lots of bugs left. And lots of misfeatures.
  12. To help us make curl the stable and solid product we want it to be, we need
  13. bug reports and bug fixes.
  14. WHERE TO REPORT
  15. If you can't fix a bug yourself and submit a fix for it, try to report an as
  16. detailed report as possible to a curl mailing list to allow one of us to
  17. have a go at a solution. You should also post your bug/problem at curl's bug
  18. tracking system over at
  19. http://sourceforge.net/bugs/?group_id=976
  20. (but please read the sections below first before doing that)
  21. If you feel you need to ask around first, find a suitable mailing list and
  22. post there. The lists are available on http://curl.haxx.se/mail/
  23. WHAT TO REPORT
  24. When reporting a bug, you should include all information that will help us
  25. understand what's wrong, what you expected to happen and how to repeat the
  26. bad behavior. You therefore need to tell us:
  27. - your operating system's name and version number (uname -a under a unix
  28. is fine)
  29. - what version of curl you're using (curl -V is fine)
  30. - versions of the used libraries that libcurl is built to use
  31. - what URL you were working with (if possible), at least which protocol
  32. and anything and everything else you think matters. Tell us what you
  33. expected to happen, tell use what did happen, tell us how you could make it
  34. work another way. Dig around, try out, test. Then include all the tiny bits
  35. and pieces in your report. You will benefit from this yourself, as it will
  36. enable us to help you quicker and more accurately.
  37. Since curl deals with networks, it often helps us if you include a protocol
  38. debug dump with your bug report. The output you get by using the -v or
  39. --trace options.
  40. If curl crashed, causing a core dump (in unix), there is hardly any use to
  41. send that huge file to anyone of us. Unless we have an exact same system
  42. setup as you, we can't do much with it. Instead we ask you to get a stack
  43. trace and send that (much smaller) output to us instead!
  44. The address and how to subscribe to the mailing lists are detailed in the
  45. MANUAL file.
  46. HOW TO GET A STACK TRACE
  47. First, you must make sure that you compile all sources with -g and that you
  48. don't 'strip' the final executable. Try to avoid optimizing the code as
  49. well, remove -O, -O2 etc from the compiler options.
  50. Run the program until it cores.
  51. Run your debugger on the core file, like '<debugger> curl core'. <debugger>
  52. should be replaced with the name of your debugger, in most cases that will
  53. be 'gdb', but 'dbx' and others also occur.
  54. When the debugger has finished loading the core file and presents you a
  55. prompt, enter 'where' (without the quotes) and press return.
  56. The list that is presented is the stack trace. If everything worked, it is
  57. supposed to contain the chain of functions that were called when curl
  58. crashed. Include the stack trace with your detailed bug report. It'll help a
  59. lot.