eXtreme Debugging with apologies to Kent Beck, et al - PowerPoint PPT Presentation

About This Presentation
Title:

eXtreme Debugging with apologies to Kent Beck, et al

Description:

Registry permissions problems can be diagnosed with the NT Registry Monitor, also freeware. ... HTTPAnalyzer is a freeware Windows tool from http://www. ... – PowerPoint PPT presentation

Number of Views:77
Avg rating:3.0/5.0
Slides: 38
Provided by: davidt9
Category:

less

Transcript and Presenter's Notes

Title: eXtreme Debugging with apologies to Kent Beck, et al


1
eXtreme Debugging!(with apologies to Kent Beck,
et al)
  • David T Watts
  • CTO
  • Fig Leaf Software
  • 30 Jul 2000

2
What is eXtreme Debugging?
  • For the purposes of this demonstration, its
    debugging problems external to CF.
  • Many common problems cant be identified from
    within CF.
  • This presentation will examine how to solve
    common problems using third-party freeware and
    shareware tools.
  • This presentation focuses on NT, but there are
    analogues for Solaris, etc.

3
What well look at
  • OS permissions problems
  • HTTP FTP protocol problems
  • Problems with external DLLs
  • Testing COM objects
  • Help Resources

4
OS permissions problems
  • Most commonly encountered when using IIS to
    control access via file ACLs
  • Examplevirtual server authentication
  • ProblemMultiple web server authentication
    prompts after several tries, access is allowed,
    but application doesnt work correctly.

5
Permissions problems, contd
  • Cursory glance at directory ACLs looks correct
    authtest1 allows anonymous user, authtest2 allows
    DAVE\Users

6
Permissions problems, contd
7
Permissions problems, contd
8
Permissions problems, contd
  • For a quick determination of file ACL problems,
    you can use the freeware NT File Monitor, from
    www.sysinternals.com. Registry permissions
    problems can be diagnosed with the NT Registry
    Monitor, also freeware.

9
Permissions problems, contd
10
HTTP FTP protocol problems
  • Some problems between client and server require
    viewing raw headers and data.
  • Problems may occur between end-user and server,
    or between one server acting as a client and
    another server.

11
HTTPAnalyzer
  • HTTPAnalyzer is a freeware Windows tool from
    http//www.coolfusion.com/ which shows HTTP
    request and response headers. Easy to use and
    effective for simply looking at headers.

12
HTTPAnalyzer
13
Telnet
  • Telnet is available on practically every
    TCP/IP-networked computer.
  • Telnet can be used to build custom HTTP requests
    and view and log responses.
  • Some telnet clients can be scripted.

14
Telnet
15
Netcat
  • Common Windows telnet clients dont work very
    well, and cant be scripted.
  • Netcat, available for NT from http//www.l0pht.com
    /weld/netcat/ can be used to perform the same
    tasks as telnet, and more.
  • Netcat can redirect to and from files, and can be
    used to act as an HTTP client or server.

16
Netcat, contd
  • Netcat usagenc switches IP addr/host port
  • Switches-d detach from console-e execute
    (followed by command)-l listen-L listen and
    restart after termination-p listening port-t
    perform telnet negotiation-v verbose

17
Netcat, contd
  • Using Netcat as a client This example pipes a
    text file of HTTP request headers to Netcat.

18
Netcat, contd
19
Netcat, contd
20
Netcat, contd
  • Netcat can also be used as a server this is
    useful for determining problems with file uploads
    and proprietary plugins. In this example, Netcat
    will return an HTTP response to any request on
    port 81.

21
Netcat, contd
22
Netcat, contd
23
Recording proxies
  • Recording proxies allow the easy capture of
    multiple requests/responses between client and
    server.
  • Typically, a recording proxy requires that you
    modify the request to pass through the proxy.

24
Recording proxies, contd
  • Freeware HTTP and FTP recording proxies are
    available from http//www.compansr.demon.co.uk/.
    These proxies are Perl scripts, and require that
    Perl be installed on the machine that will act as
    the proxy (typically the requesting client).
  • These scripts record request headers, but not
    request bodies.

25
Recording proxies, contd
26
Recording proxies, contd
27
Recording proxies, contd
  • Load-test tools can also generally be used as
    recording proxies this is often how the load
    test script is created. These will record headers
    and bodies.

28
Working with external DLLs
  • A DLL, such as a CFX component, working on one
    machine may not work on another for no apparent
    reason.
  • Typically, this is caused by a dependency on a
    library found on the working machine, but not on
    the other.

29
External DLLs, contd
  • You can use Dependency Checker (depends.exe) to
    determine what files are needed.
  • Dependency Checker is available in the Windows NT
    Resource Kit, Windows 2000 Support Tools (on the
    Win2K CD), and in Visual Studio.

30
Dependency Checker
31
Testing COM objects
  • Many, but not all, COM objects can be used from
    CF.
  • COM objects often come with ASP sample code, but
    this ASP code may hide some of the complexity
    behind the objects usage (ex authentication).
  • To separate object testing from web server
    issues, use Windows Script Host to automate the
    object, then convert the WSH test to CF
    iteratively.

32
Testing COM objects, contd
33
Help resources
  • Beyond the standard resources for CF, there are
    several that are useful to CF developers on NT.

34
Help resources, contd
  • Windows NT/Windows 2000 Resource Kits
  • IIS Resource Kit
  • Windows 2000 Magazine Archive, available on CD
    http//www.win2000mag.com/
  • MSDN Library, available from Microsoft
  • Microsoft Online Support http//support.microsoft
    .com/

35
General advice (a.k.a. common sense)
  • Many problems require an approach outside of the
    normal CF development process.
  • Very few problems, however, are new to you! Most
    of them have existing solution processes.
  • Sometimes, the solution to a problem requires
    recasting the problem to a different problem
    domain in other words, looking at the process
    (What am I trying to accomplish?) rather than
    the implementation issues (how do I do x?).

36
General advice, contd
  • A competent CF developer needs to know more than
    just CF and SQL.
  • Beyond development skills, CF developers need to
    have a basic understanding of the OS theyre
    using, TCP/IP networking, and the HTTP protocol,
    among other things.
  • Iterative solutions make problem-solving easier.
  • Problems that are purely CF problems can easily
    be tested by any competent CF developer.

37
Thats all, folks!
  • This presentation will be available Monday from
    the CFUG section of the Fig Leaf site, and should
    be available from the CFUN2K site as well.
  • If there are any questions, please contact Dave
    Wattsdwatts_at_figleaf.com
  • Thanks, and have a nice day!
Write a Comment
User Comments (0)
About PowerShow.com